Salto de pared para plataformas 2D

14

He estado buscando una manera de implementar wall-jump en mi juego xna, pero no puedo encontrar ninguna información al respecto, ¿alguien podría ayudarme?

dbomb101
fuente

Respuestas:

21

Cuando un jugador colisiona con una pared mientras salta (o, si lo desea, cae), encienda una bandera durante los siguientes 100 milisegundos o más, lo que provoca un intento de saltar para iniciar con éxito un salto (ignorando cualquier verificación de contacto de superficie) con un buena cantidad de velocidad en el eje X en la dirección alejada de la pared. Recuerde apagar la bandera temprano si de hecho se inicia un salto.

caos
fuente
3
Creo que necesita modificar la primera oración: "Cuando un jugador choca con una pared (mientras está saltando) ..." de lo contrario, el jugador podría saltar de la pared desde estar parado en el suelo al lado de una pared, lo que no sería esperado.
CiscoIPPhone
@CiscoIPPhone: Sí, gracias. Eso produciría un extraño cambio de comportamiento entre los 100 ms después de la colisión y más tarde.
caos
2

Sinceramente, habría hecho una verificación de puntos. Entonces:

if (falling AND left_key_pressed AND !point_free(x-1,y))
    doWallJump

Es posible que desee cambiar la y para decir y + sprite_width / 2 (o, dependiendo de su sistema de coordenadas) para que compruebe a la izquierda del medio su sprite en lugar de la parte superior (o inferior). Así es como N implementa los controles de pared para saltar la pared (último párrafo) .

Después de eso, debes decidir qué tan apretado quieres que salte tu muro. Si la velocidad vertical de tu salto supera la horizontal antes de que el jugador pueda alcanzar esa misma pared nuevamente, no podrás saltar en la misma pared y caerás gradualmente hacia abajo (como en los juegos de Mario con salto de pared ) Si permites que la horizontal sea lo suficientemente débil como para que el jugador regrese a la pared, él / ella podrá avanzar por la pared (como en Meat Boy).

Otro enfoque no mencionado es el de Super Metroid. En ese juego, cuando estás contra una pared, si te mueves de esa pared, se reproducirá una animación muy corta de "movimiento fuera de la pared". Si saltas durante esa animación, harás un salto de pared. (Super Metroid también permite que un jugador trepe una pared usando saltos de pared, pero requiere un poco de habilidad (de hecho, todo sobre saltar la pared en Super Metroid requiere un poco de habilidad ...).

Jeff
fuente