Escolar Documentos
Profissional Documentos
Cultura Documentos
Você provavelmente seguiu alguns dos tutoriais para iniciantes e decidiu criar seu
próprio projeto com base na mecânica de jogo que aprendeu. Mas assim que você
adicionou ações mais complexas, você rapidamente se perdeu em uma selva de
condições aninhadas que levam a bugs difíceis de encontrar. No final, você
provavelmente sairá do projeto.
A maioria dos tutoriais que você encontra na internet (independente do mecanismo
do jogo) apenas tenta mostrar uma maneira de atingir o objetivo daquele tutorial
específico com o mínimo de distração possível. Infelizmente, isso geralmente resulta
em código que não se preocupa com a extensibilidade.
Este tutorial mostrará como estruturar seu projeto de forma a encapsular a lógica de
seu jogador (inimigos ou outros objetos dinâmicos).
Mude para o editor de eventos (cena “principal”) e crie esses eventos externos
“playerstateinit”, “playerstatefalling”, “playerstateidle”, “playerstatewalking”,
“playerstatejumping”. Nos eventos de sua cena principal, crie um novo grupo de
eventos no menu suspenso à direita. Chame-o de “Lógica do jogador”. Agora
adicione uma condição "No início da cena". Adicione um subevento à condição e
vincule na folha de evento externa “playerstateinit” através do botão
“add”/”other”. Faça o mesmo para todos os outros estados do jogador.
Observação
Em vez da animação, poderíamos ter criado aqui um "estado" de variável de
cena dedicado para controlar o estado do jogador. Isso é mais avançado, mas permite
uma melhor flexibilidade. No entanto, a abordagem apresentada aqui tem o benefício de
agrupar a lógica com a animação correspondente, permitindo clareza e simplicidade na
planilha de eventos. Além disso, você tem acesso aos quadros da animação/estado atual
e pode acionar alguma lógica em um determinado quadro dentro da animação.
O estado “ocioso”
O estado ocioso é acionado sempre que a pessoa na frente do computador não faz
nada. Em outras palavras, nenhuma tecla é pressionada e o objeto do jogador está
parado. Como no estado “caindo”, não há nenhuma ação ativa a ser
executada. Apenas verificamos as condições que nos fazem sair do estado
“ocioso”. Então, primeiro verificamos se o jogador está no chão. Se não, transitamos
para o estado de queda. Em seguida, verificamos se o jogador pressionou as teclas
de seta para a esquerda ou para a direita. Se assim for, transitamos para o estado
ambulante. Por último, mas não menos importante, a tecla de seta para cima é
verificada e, se pressionada, mudamos o jogador para o estado de salto. Parece
lógico, não é?
E é sobre isso.
Conclusão
Agora dividimos a lógica do jogador em cinco estados diferentes, que lidam apenas
com a lógica aplicável a eles e nada mais. Se você deseja que seu jogador ganhe
habilidades adicionais como voar, mergulhar, morrer ou ser esmagado contra uma
parede, basta criar um novo estado e lidar com a lógica lá.
exercícios
1) Como você já deve ter notado, o jogador está agindo um pouco diferente enquanto está no ar
do que com os controles padrão ativados. Isso ocorre porque atualmente não temos nenhuma
entrada ativa no estado “caindo”. Portanto, sua tarefa é permitir que o jogador se mova enquanto
estiver caindo. Verifique se as teclas de movimento estão pressionadas e aplique metade da força
de movimento usual ao jogador.