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
ENDIFAqui está em ação: mostrei o valor de J na parte superior do ecrã para te ajudar a ver o que estava a acontecer!
