Minilop Retroware

MPAGD Avançado

Salto duplo com antirressalto de teclas

29 de maio de 2022

Aqui tens uma forma rápida de ativar a funcionalidade de salto duplo nos teus jogos de plataformas com o MPAGD. Inclui também um antirressalto de tecla para que o salto duplo não seja iniciado automaticamente por manteres o dedo no botão ou tecla de disparo/salto.

Usei uma variável, J, que vai guardar o nosso estado de salto atual; se preferires, podes usar uma variável de sprite como SETTINGA. Para a funcionalidade de salto duplo há cinco estados de salto possíveis:

0 Nenhum salto ativo

1 Foi iniciado o primeiro salto

2 É possível um segundo salto

3 Foi iniciado um segundo salto

4 O jogador aterrou depois de fazer um salto.

Ao usar um IF ELSE ENDIF na nossa tecla de disparo, podemos garantir que é definido o estado correto, o que permitirá (ou não) um segundo salto. Este código também garante que a tecla de disparo foi largada antes de poder ocorrer qualquer tipo de salto (simples ou duplo).

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

Aqui está em ação: mostrei o valor de J na parte superior do ecrã para te ajudar a ver o que estava a acontecer!

Todo o MPAGD Avançado