Minilop Retroware

MPAGD Avanzado

Doble salto con antirrebote de teclas

29 de mayo de 2022

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
ENDIF

Aquí 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.

Todo MPAGD Avanzado