Diciembre 06, 2014, 11:57:15 PM Ultima modificación: Diciembre 07, 2014, 08:42:17 PM por matiascarpello
Hola comunidad, tengo una duda y quiero saber como implementarla. Quiero que cuando mi personaje colisione con el borde de una saliente se quede colgado como en la imagen de abajo, y luego al tocar la flecha subir se suba a la plataforma.

Les dejo como ejemplo una imagen del juego Spelunker en donde justamente saque la idea. Con esta imagen seguro me entenderán.



Encontré un ejemplo muy bueno. En dicho ejemplo, tanto el personaje como los bloques tienen un tamaño de 32x32.

Como en mi juego los bloques tienen 96x96 y el jugador 90x90 me puse a adaptar los tamaños y al hacer eso no funciona para nada las coliciones.

Obviamente que al modificar el tamaño de los sprite en centro de gravedad de cada sprite de desconfigura, pero lo modifique proporcional al original y nada.

Les dejo el link del ejemplo para ver si pueden saber el problema.

http://www.mediafire.com/download/r9oxi93ki9adjdd/WallGrab.gmk

podrias hacer una sentencia con if's en el cual en caso de colision con ese objeto se desactive la gravedad. Ahora mismo no tengo el game maker a mano (estoy escribiendo este mensaje desde linux) para hacer el codigo.

Programa 2 estados para el personaje, uno que sea el estado normal en el que puedes caminar y saltar sobre las plataformas y otro estado cuando el personaje está colgado.

Tal vez lo más difícil sea determinar el método para activar alguno de los estados, se me ocurre esto:
Cuando el personaje se mueva a la derecha y la velocidad vertical sea positiva, revisa si hay un bloque a la derecha (usando alguna de las funciones de colisión), si es así revisa que no hay un bloque encima, por último revisa que el personaje y el bloque queden alineados verticalmente (se haría comprobando la diferencia entre las coordenadas "y" de los dos objetos), tal vez sea necesario revisar ese alineamiento con un rango de error, porque en caída libre el personaje no siempre va a quedar alineado verticalmente.

Si se cumplen todos los requisitos anteriores el personaje debería entrar al estado "colgado" en el que no actúa la gravedad y los controles tienen un comportamiento diferente (también puede ser necesario alinear verticalmente al entrar a este estado).

Para salir de ese estado debes oprimir alguno de los botones de movimiento, la reacción puede ser diferente dependiendo del botón que se oprima.

Ésta es un simple sugerencia, seguro se puede hacer de muchas otras formas.