Ayuda con algo que nunca he programado, bloques que interactúan con el personaje

Started by Shin_Asamiya, February 27, 2015, 11:27:24 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

warrior_rockk

Coincido con la gente que ha posteado que estas no son maneras de solicitar ayuda. Por tus comentarios das a entender que no sabes lo que es un motor de físicas 2D, lo cual me parece perfecto, pero , precisamente por esa ignorancia deberías preguntar con mas humildad ya que, te están dando la respuesta a tu pregunta.


Por otro lado, y centrándonos en el tema de nuevo, en mi opinión, utilizar el motor de físicas 2D en este caso lo veo matar moscas a cañonazos. El problema tiene solución mas simple que tener que usar una librería completa de físicas.
Siguiendo con la idea que he explicado en mi primer post, puedes crearte una función de comprobación de colisiones con bloques que haga los siguientes cálculos:


obtienes los vectores de diferencia de posicion entre player y bloque:   vX = personaje.x - bloque.x;    vY = personaje.y - bloque.y;
sumas las mitades del ancho y alto de los procesos:                              hW = (personaje.ancho/2) + (bloque.ancho/2); 
si los vectores vX y vY son menores que las mitades de anchos y altos, ESTAN colisionando:  if (abs(vX) < hW && abs(vY) < hH)

Ahora solo tienes, dentro de este if, obtener el lado por el que colisionan de esta manera:
restas a las mitades de ancho y alto sus vectores:  oX = hW - abs(vX);   oY = hH - abs(vY);
if (oX >= oY)
       if (vY > 0)
      //colsiona por arriba
      else
     //colisiona por abajo
    end;
else
    if (vX > 0)
    //colisiona por al izqueirda
    else
    //clisiona por la derecha
end;

Una vez sabes por donde colisiona, puedes actualizar y mover el bloque el numero de pixeles por la dirección de colisión a los que "empuja" el personaje.

Shin_Asamiya

Ya dije que yo no exijo ayuda a nadie. Contesto con tono borde cuando me contestan borde, así de simple. Si pasaran los días y nadie me ayudara pues tendría que fastidiarme, eso lo entendería. Lo que no entiendo es que se me contesten cosas como esta:

"tienes google ? si pones 'chipmunk library' en el buscador veras lo que es."

Eso es borde, se mire por donde se mire. Y si se revisan mis anteriores mensajes se comprobará que no hay nada borde en ellos hasta que no se me provocó con eso. Lo que pasa es que me conozco como funcionan los foros, son muchos años ya. Llega el típico que tiene tropecientos mensajes, te contesta con mala leche, los amiguetes hacen la vista gorda, llego yo, que soy nuevo, le contesto como es debido y se me dice que el borde soy yo.

Por otro lado, nadie ha pedido aquí que "se me de la papilla hecha". Nadie ha exigido nada, y creo que cualquiera que lea mis posts con detenimiento y sin animosidad podrá comprobarlo. Empecé de forma muy educada y sin ningún tipo de arrogancia, pero si me contestan de forma prepotente y burlesca, tratándome como si fuera un vago que ni se ha molestado en buscar las cosas, yo contesto con la misma dureza. Yo no vengo a un foro a que se me falte al respeto, se tengan la cantidad de mensajes que se tengan y el karma que se tenga, me es indiferente, y eso sí lo exijo, el respeto. O sea, yo me he quejado de una falta de respeto no de que no se me ayude como espero, hay que diferenciar conceptos.

Mandar al google o al buscador a una persona cuando pregunta algo es un acto de prepotencia y arrogancia, es una provocación, pero eso por lo visto nadie lo ha querido ver, en cambio se me acusa a mi de eso. En fin, allá cada uno, pero ahí están las pruebas, para el que las quiera ver. Decidme qué frase de mis posts anteriores a ese que he copiado es arrogante o borde. Si no sois capaces de copiarme ninguna lo vuestro es una difamación.

warrior_rockk, te digo lo mismo que a los demás. La falacia en la que estáis incurriendo es que yo no solicité ayuda de forma arrogante, ni me faltó humildad, que de paso te digo que ignorar algo no te coloca por debajo en ninguna jerarquía, no confundamos humildad con sumisión, es decir, yo puedo ser humilde, pero no sumiso y aguantarme con las burlas del personal sólo por que desconozca algo de Bennu, eso es irrelevante, se trata de un mínimo de respeto entre personas. Insisto, lee los posts antes de la falta de respeto de Freeyourmind y comprobarás que así es (que por cierto, ya en otro hilo me escribió con unas confianzas y con un tono que no es el adecuado, cambiando el tema principal, e hice la vista gorda). Te repito lo mismo, yo no me he quejado de cómo se me ayuda, faltaría más, me he quejado de un post que es insultante y ofensivo. A mi se me puede pedir humildad cuando se es humilde conmigo, pero si un tío se burla de mi y espera que me calle me está pidiendo sumisión. Me da igual que tenga más de 3000 mensajes y sea el puto amo del foro, como si es el admin y me banea, yo voy a contestarle como se merece, punto. Es muy sencillo de entender.

Gracias por tu ayuda de todos modos, era algo así de sencillo lo que pedía.

Ahora si queréis banearme o lo que os de la gana, adelante. Pero yo no voy a permitir que ningún chulo que además no me conoce de nada se me suba a donde nadie le ha dicho que se suba.

PD: Me preguntaba porqué este foro está tan vacío, ahora lo entiendo. Es un fenómeno que he visto en muchísimos foros, se van quedando 4 amiguetes liderados por algún borde y se va yendo la gente nueva, que se encuentra con un ambiente hostil. Ya digo que son muchos años ya. Me parece que habéis perdido otro participante.

warrior_rockk

No conozco a la gente de este foro ni soy un asiduo de mucho años. Simplemente de manera objetiva (objetiva desde mi propia subjetividad), me pareció fuera de lugar la reacción a que te manden buscar a google. También llevo mucho tiempo visitando foros y , a veces consigo respuestas, a veces no, y a veces las respuestas no me aportan nada, pero no veo motivo para la indignación.
Por tu manera de expresarte entiendo que eres una persona de cierta edad, con lo que, supongo que no quieres perder más tiempo con estas discusiones en un foro de programación así que, si os parece, volvemos al tema principal del post.

FreeYourMind

Te equivocas Shin Asamiya, te apuesto que en otros foros si entras con esta actitud los foreros te responderan con la misma actitud que he hecho yo.

No puedes venir a pedir ayuda a un foro y que la gente te recomiende mirar una determinada funcion en un manual o ejemplo de algun juego en concreto por ejemplo, y tu soltar la perla de que pasas de mirar en el manual o buscar en codigo fuente de terceros y lo que quieres es que la peña te ponga la papilla en el plato directamente.

Como ya te dije para que la gente te ponga cierta papilla en el plato tambien tienes que hacer alguna consulta, porque nadie tiene el manual plasmado en la cabeza.

Me hace gracia que digas que pasas de buscar en el codigo fuente de terceros, cuando ya le gustaria a mucha gente poder tener el codigo fuente de terceros para buscar alguna duda o mirar como se hace determinada cosa....

Enfin, llamame borde como prefieras, pero aqui yo no lidero nada ni a nadie, soy un usuario más. Y si quieres estar tienes que respetar a los demas si quieres que te respeten

FreeYourMind

Y sobre lo de enviarte a google, es muy sencilla la explicación:

Primero, al buscar en google te sale directamemente la wiki y asi puedes ver al detalle de que tecnologia estamos hablando...

Segundo, ha sido para confirmar lo vago que eres que nisiquera has tenido el detalle de pensar algo así:

"vale, tampoco se que es esto del chipmmunk, dejame mirar antes en google, y asi ya formulo mejor y filtro mis dudas para que la peña me ayude y ver si esta tecnologia me vale o uso otro metódo..."

Lo tuyo era preguntar de chulo, todo lo que te digan no lo ibas a mirar, asi que deja de tratarnos como crios, porque no somos tontos, incluso me apuesto que lo tuyo ha sido venir a reirte de los que estamos con preguntas tontas para sacarnos de nuestras casillas.



Ulthar Kaufman

Shin, yo llevo aquí apenas unas semanas, estoy empezando como tu, y en ningún caso he sentido indiferencia por parte de los usuarios veteranos, al contrario.

Dices que en todos los foros te pasa lo mismo, si entras con esa hostilidad... normal que la historia se repita. Tal vez deberías reconsiderar tu actitud.

Aceptame un consejo: tómate una tila. Y yo por mi parte lo dejo aquí, que ya estoy muy mayor para estas cosas.

Shin_Asamiya

Gracias, Comandante, lo miraré.

Con lo sencillo que es ayudar en lugar de tocar los cojones, en fin  ::).

Yo ya digo, me despido del foro. Espero que la peña aquí aprenda a respetar y a dar bienvenidas en condiciones a los que vengan nuevos porque si no me temo que seguirá muerto esto.

Adiós.


SplinterGU

Quote from: Shin_Asamiya on March 03, 2015, 07:13:48 PM
Gracias, Comandante, lo miraré.

Con lo sencillo que es ayudar en lugar de tocar los cojones, en fin  ::).

Yo ya digo, me despido del foro. Espero que la peña aquí aprenda a respetar y a dar bienvenidas en condiciones a los que vengan nuevos porque si no me temo que seguirá muerto esto.

Adiós.

epa! no he leido el hilo y ni se que paso... estoy con miles de problemas personales y de salud... pero ten paciencia, hay mucha gente en el foro, ya te respondera alguno de la forma que necesitas...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Quote from: Shin_Asamiya on February 27, 2015, 01:17:52 PM
Ya, pero es que yo quiero que puedas empujar y destruir algunos bloques, con lo cual un mapa no sirve, porque un mapa es fijo ¿no? ¿No se le pueden aplicar las propiedades al propio proceso del gráfico del bloque en cuestión?
Error, el mapa lo puedes cambiar constantemente, no deja de ser una matriz de datos , y es lo más facil que puedes usar para lo que buscas.
Un ejemplo sencillo, el juego de tic-tac-toe (o tres en raya)
Tienes un mapa o tablero de 3x3 casillas (es decir 9 casillas)
Pues la solución más directa es crear una matriz de 3,3 de enteros y ahora crearte un mapeo de números que vas a usar y su significado.
por ejemplo:
0 casilla vacía
1 casilla ocupada por ficha blanca
2 casilla ocupada por ficha negra.
pones todo a 0 por defecto quedando esta matriz
000
000
000
ahora creas una función que pinte tu tablero en pantalla, que haría algo como recorrer el mapa y mirar que valor tiene, si tiene un 0 dibucas un cuadrado vacío en pantalla, si tiene 1 un dibujas un cuadrado con un circulo blanco en el centro y si tiene un 2 dibujas un cuadrado con un circulo negro en el centro.
ahora le pides al usuario que ponga una ficha y le dices columna y fila, y si te da coluna 2, y fila 2 pues tu vas y pones en esa posición de tu mapa un 1 y te quedaría
000
010
000
ahora llamas a tu pintar fantástico de antes y refleja el cambio en pantalla
ahora el computador elige hueco asi que recorres la matriz buscando un 0, ya que si hay un 1 o un 2 es que está ocupado. pones por ejemplo un 2 en fila 1 columna 1 y te queda
200
010
000
vuelves a llamar a tu pintar y actualiza la pantalla
pues ahora al jugador le pides otra vez y verificas que la posicion que te de haya un 0 porque si no hay una ficha suya o del computador.

Pues ya está así ya luego haces las comprobaciones que necesistes para saber si uno gana o pierde.

en tu ejemplo es igual, te creas un mapa de números y significados y vas jugando con ellos
por ejemplo el 1 significa jugador, el 2 muro indestructible, el 3 muro movil, etc.
pues si al mover al jugador a una posición hay un muro indestructible haces que el jugador no se mueva y se quede donde está
si al mover el jugador hay un muro movil, pues lo mueves una posición en la misma dirección que ibas a mover al jugador. actualizas tu mapa, pones un 0 donde estaba el muro y un 3 en su nueva posición, y vuelves a llamar a tu pintar fantastico que actualizará la pantalla.

Esta técnica es la más básica y práctica para todo tipo de juegos de casillas. tienes muchos ejemplos disponibles en el bennu pack.
e incluso en mi firma en el apagame tienes un ejemplo del tictactoe entre otros muchos mas juegos de tablero.

Espero que esto sea lo que vas buscando. porque como dicen mis compañeros hacerte el juego no te lo va a hacer nadie, tendrás que ser tu mismo con la ayuda voluntaria que te vayamos ofreciendo a partir de lo que entendamos que preguntas ;), suerte y al lío , a ver si proto vemos un juegazo tuyo por aquí y te felicitamos ;D :D ???


Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/