E ai galera!
Estive procurando por um tutorial de escadas mas nunca encontrei. Então resolvi fazer o meu!
1) Começando
Primeira coisa, faça uma fase simples com o Solid behavior e um jogador. Faça com que o jogador não possa pular nas plataformas acima.
Não vou explicar como fazer um jogo simples de plataforma, mas você pode encontrar ótimos
tutoriais
a respeito.
2) Behaviors do jogador
Dê ao seu objeto jogador as behaviors de Platform e 8 direction. Basicamente, nós vamos ativar um e desativar o outro quando estivermos em escadas e vice versa quando não estivermos. Simples né?
Veja a parte em negrito! É importante!
Directions: Up & Down
Set angle: No
Default Controls: Yes
Vou deixar o resto como o que já vem em default, isso depende mais de você e de seu jogo.
Mas se deixarmos assim, pode ficar bem bugado, então vamos "desligar" a behavior de 8 direções no início do layout:
É importante que você "ignore o input do usuário" ao invés de "desabilitar".
Além disso, tenha certeza que Default Controls estão desabilitados no Platform behavior.
Teste, mas provavelmente está tudo certo!
Não se esqueça de salvar!!
3) Implementação da escada
Vamos fazer um novo objeto sprite chamado de "escada" ("ladder" em inglês). Faça-o mais fino que o jogador.
Agora vamos começar a implementar suas funções!
Vamos começar dando ao jogador duas variáveis de instância: canClimbLadders e onLadders.
A cada frame ("tick"), o jogo irá checar o status do jogador para ver se ele PODE subir uma escada, setando canClimbLadders para true ou false, porque talvez em seu jogo haverá algum estado que você não quer que ele possa subir em escadas, como por exemplo enquanto ataca ou leva dano, sei lá. Em nosso exemplo, ela sempre será true.
A variável onLadders irá simplesmente nos dizer se o jogador está em uma escada ou não.
Certo, então vamos fazer nosso jogador escalar esta escada.
Teste e veja que está mais ou menos funcionando... O jogador apenas vai pra cima quando vc segunda a Seta para Cima e está bem falhado. O segredo está naquele primeiro bloco Else.
Vamos melhorá-lo!
Certo, agora nós mudamos a condição para sair da escada quando pressionamos S. Também fazemos o jogador "travar" no centro da escada com a condição Set X. As condições Platformer vector estão lá para cuidar de alguns bugs, que você pode testar para descobrir sozinho caso ainda não tenha o feito.
Além disso, comentários e SALVE !
Nesse ponto você já deve ter percebido que você não pode passar da escada, então qual o sentido?
Isso é outra tarefa simples:
Nossa, mas agora não podemos sair das escadas - a não ser que pressionemos S - mas deveríamos sair da escada quando encostássemos no chão acima ou abaixo, certo?
Veja que eu troquei as condições Set Platform Vector X e Set Platform Vector Y de lugar para otimização.
Estamos quase lá! Vamos fazer agora o jogador escalar as escadas quando estiver acima dela:
E - com alguns ajustes - terminamos :)
4) Conclusão
Espero que os comentários - apesar de estarem em inglês - façam com que fique mais fácil ler o código e entender a lógica.
Este é o meu primeiro tutorial então peguem leve comigo. xD
Deixei qualquer pergunta (ou qualquer feedback, na verdade) nos comentários abaixo e eu tentarei responder!
Ah, e o .capx está lá do lado então tenha certeza de baixá-lo se quiser. :)
Até mais!