Como saltar e correr em plataformas em seu jogo html5
O “salto e executar” plataforma de gênero tem sido um gênero de arcada grampo por um bom motivo. Ele fornece uma experiência interativa agradável para o seu jogo HTML5 e é relativamente fácil de modificar para muitos tipos diferentes de jogos.
Conteúdo
Video: #4- 2D Plataforma: Unity 5 - Tutorial para iniciantes - #Animação - Correr
O elemento essencial de um jogo de plataforma é - bem - plataformas. A ação acontece geralmente com uma vista lateral e um personagem que responde a gravidade. Normalmente, o jogador vai pular em plataformas e lutar contra os inimigos de tiro, saltar, ou combate corpo a corpo.
Meu protótipo mostra as características essenciais. Ele inclui um personagem que pode saltar e pousar em plataformas. plataformas arrastáveis são incluídos para que você possa editar a cena e ver como o personagem interage com várias configurações de plataforma.
códigos de salto e de jogo da terra
A chave para um jogo side-scrolling é o salto e aterrissagem mecânico. Use um queda propriedade para controlar se o personagem deve responder a gravidade ou não. Aqui está o código do checkKeys () método que lê a seta para cima e faz o personagem pular.
if (keysDown [K_UP]) {if (this.falling == false) {this.setImage ("characterUp.jpg") -this.y - = 5-this.falling = true-this.addVector (0, 15) -} // fim do if} else {checkFalling () -} // fim se
o checkFalling () controlos função de cada um dos blocos. Se o personagem não está tocando qualquer um dos blocos, definir caindo para verdade. Isso fará com que a queda de caráter, uma vez que se move fora de um bloco.
Como entrar para uma aterragem
A interação entre o personagem e os blocos é importante porque você quer o personagem parar de se mover antes ela atinge um bloco. Isso requer uma técnica chamada detecção de colisão preditivo, que soa muito mais complicado do que é. Aqui está o mecanismo:
Mover o elemento como normal.
Fazer os cálculos para mover o objeto (neste caso o personagem) como normal. Note-se que o personagem ainda não foi elaborado, mas novos valores x e y foram determinados adicionando dx e dy.
Verifique se há uma colisão.
Verifique para ver se o personagem tem colidiu com alguma coisa (neste caso, cada bloco no conjunto de blocos).
Se ocorrer uma colisão, o backup do personagem.
Você está verificando uma colisão, mas você não quer que o personagem para coincidir com o bloco. Em vez disso, você está interessado em saber se o vetor de movimento atual poderia causar uma colisão.
Subtrair dx a partir de X, dy a partir de y.
A colisão foi detectada, então diminui dessa colisão subtraindo-se o vetor de movimento. Isso resulta no ser sprite onde começou antes da colisão foi detectada.
Defina a velocidade do sprite para zero.
Defina a velocidade do sprite para zero para o próximo quadro não causa o sprite a colidir com o bloco novamente.
A maneira mais fácil de obter o comportamento preditivo é adicionar um cópia de segurança() método para o duende objeto, que pode ser chamado em qualquer tipo de colisão:
tCharacter.backup = function () {// Estou sobreposição de algo que eu não deveria compartilhar espaço com // volta para onde estava antes da colisão foi detectedX = this.x - this.dx-Y = this.y - this.dy-this.setPosition (X, Y) -} // apoio da extremidade
Como fazer blocos arrastáveis
Este jogo apresenta uma outra característica muito interessante: Cada bloco pode ser arrastado para uma nova posição para que você pode experimentar com outras colocações de blocos. Fazer qualquer Sprite draggable é relativamente fácil. Basta verificar para ver se o bloco atualmente está sendo clicado. Se assim for, definir a sua posição igual à posição do mouse:
Video: Host para games HTML5 com o game maker studio
tBlock.checkDrag = função () {// permitir que o bloco de ser draggableif (this.isClicked ()) {this.setPosition (scene.getMouseX (), scene.getMouseY ()) -} // final se} // extremidade checkDrag
Como melhorar o jogo de plataforma
O jogo de plataforma está aberta a muitos tipos de melhorias:
Use vários níveis. Os blocos padrão são fáceis de construir e trabalhar, mas eles não são muito interessantes. Experiência com formas de blocos diferentes e posições para construir níveis interessantes. Você pode armazenar as posições de blocos em matrizes para fazer novos níveis, e simplesmente reutilizar os blocos.
Considere uma abordagem baseada em azulejo. O exemplo a plataforma utiliza um esquema de colocação de bloco arbitrário, mas você também pode usar uma abordagem baseada em azulejo.
Adicionar metas e inimigos. Uma melhoria óbvia para este jogo seria incluir algum objetivo de alcançar com algum obstáculo no caminho. Pense em como você pode implementar personagens inimigos. Será que eles vão mudar? Será que eles vão filmar? Considere também adicionando upgrades para melhorar a velocidade de salto, adicione uma arma de longo alcance, ou qualquer outra coisa que você pode imaginar.
Adicionar mais poder de fogo. Adicionar uma arma para o personagem que ele possa atirar. Em scrollers lado, a arma normalmente dispara horizontalmente, mas você pode jogar em torno de obter o comportamento desejado.
Melhorar a física. A dinâmica deste jogo funcionar muito bem, mas você pode melhorá-los com um pouco mais ajustes. Siga as linhas gerais do programa existente, mas veja se você pode fazê-lo funcionar exatamente como o que você quer.