Aquí tienes una forma rápida de activar la función de doble salto en tus juegos de plataformas con MPAGD. También incluye un antirrebote de tecla para que el doble salto no se inicie automáticamente por mantener el dedo en el botón o tecla de disparo/salto.
He usado una variable, J, que guardará nuestro estado de salto actual; si prefieres, podrías usar una variable de sprite como SETTINGA. Para la función de doble salto hay cinco estados de salto posibles:
0 Ningún salto activo
1 Se ha iniciado el primer salto
2 Es posible un segundo salto
3 Se ha iniciado un segundo salto
4 El jugador ha aterrizado después de hacer un salto.
Usando un IF ELSE ENDIF sobre nuestra tecla de disparo, podemos asegurarnos de que se establece el estado correcto, que a su vez permitirá (o no) un segundo salto. Este código también garantiza que la tecla de disparo se haya soltado antes de que pueda producirse cualquier tipo de salto (simple o doble).
IF KEY FIRE
IF J = 0 ; J is our jump status
JUMP 6
LET J = 1 ; player has Jumped set status to 1
ENDIF
IF J = 2 ; double jump is possible
STOPFALL
JUMP 6
LET J = 3 ; double jump has occured
ENDIF
ELSE ; player is not pressing jump
IF J = 1 ; if jump flag is active and we've released the jump key
LET J = 2 ; set jump flag to double jump possible (2)
ENDIF
IF J = 4 ; if player had jumped, then landed and now released jump
LET J = 0 ; reset the jump status
ENDIF
ENDIF
IF AIRBORNE = 0 ; PLAYER HAS LANDED
IF J >= 1 ; if player had jumped or double jumped
LET J = 4 ; set status to 4 and await jump key being released
ENDIF
ENDIFAquí está en acción: he mostrado el valor de J en la parte superior de la pantalla para ayudarte a ver lo que estaba pasando.
