Como criar interação com o usuário em seu jogo html5
A maior diferença entre um jogo HTML5 e uma animação é interação do usuário. Se você quiser torná-lo um jogo, você precisa que o usuário se envolver. E aqui está como fazer isso.
Conteúdo
Aqui está o código:
car.html Dirigir o carro!
Como usar o teclado para o seu jogo
De alguma forma, o usuário precisa interagir com a página. O teclado é um dos mais fáceis elementos de entrada para usar. simpleGame fornece algumas maneiras de verificar o teclado, mas a técnica mais poderosa usa uma variável especial chamada keysDown. Veja como funciona:
keysDown é uma matriz global. Esta variável é criado automaticamente quando você constrói uma cena. É uma matriz de valores booleanos - Isto significa que cada elemento pode ser apenas verdadeiro ou falso, apenas.
Há uma constante definida para cada chave. Cada tecla no teclado padrão tem uma constante especial já definida. Por exemplo, K_A representa o UMA chave, e K_B representa o B chave.
keysDown diz o status de cada chave. Se o UMA chave está pressionado, keysDown [A] irá conter o valor verdade. Se o UMA tecla não for pressionada, keysDown [A] irá conter o valor falso.
Você pode determinar o status atual de qualquer tecla. Basta verificar o keysDown [] matriz para determinar o status atual de qualquer tecla.
Você pode ter várias teclas pressionadas ao mesmo tempo. O objetivo principal desta técnica é permitir múltiplas teclas a serem pressionadas ao mesmo tempo. Em computação normal, é raro ter mais de uma tecla de cada vez. No jogo, é muito comum a pressionar mais de uma tecla de cada vez, por isso você precisa de um mecanismo que pode suportar essa expectativa.
Como mover o sprite jogo
Essencialmente, um sprite tem uma posição, a qual é controlada por X e Y propriedades. Se você se lembrar da aula de matemática, X representa valores horizontais, e Y é para localização vertical. o origem (0, 0) é o canto superior esquerdo do ecrã.
X coordena o trabalho exatamente como você se lembra da aula de matemática. Como valores de X obter maiores, o sprite move para a direita. Na computação gráfica, Y atua um pouco diferente do que ele fez na aula de matemática. A maioria das varreduras de hardware de visualização de cima para baixo, de modo que Y é 0 no topo da tela e aumenta à medida que se movem para baixo.
Note-se que a altura máxima e largura são armazenados em variáveis: scene.height e scene.width.
Todos os vários métodos de movimento são realmente sobre a manipulação X e Y. Você pode definir esses valores manualmente (setPosition (), setX (), e setY ()), Ou você pode alterar os valores (changeXby (), changeYby ()). Cada um desses métodos age imediatamente, para que você possa usá-los para direcionar a posição ou movimento do sprite.
Algumas destas funções parecem semelhantes entre si. Por exemplo, changeXby () se parece muito com setChangeX (). Essas funções têm uma diferença sutil, mas importante. o changeXby () função altera o valor de X uma vez. Se você quer a mudança para continuar, você tem que manter a chamar esta função.
o setChangeX () função é mais poderosa porque você pode chamá-lo uma vez, e ele repetidamente muda x por qualquer valor a determinar até que você chamar setChangeX () novamente.
Para a maioria dos sprites, você realmente quer dar simplesmente o sprite um ângulo e uma velocidade, e deixá-lo ir. o duende objeto tem exatamente os métodos que você precisa para esse comportamento. setAngle () permite determinar a direção o sprite irá, e setSpeed () permite especificar a velocidade para ir nessa direção. Como a maioria das funções de movimento, há também changeAngle () e changeSpeed () métodos.
Como controlar o carro em seu jogo
o keysDown mecanismo pode ser combinado com os métodos de movimento para controlar facilmente o seu carro. Aqui está o código relevante atualizar() novamente:
update function () {scene.clear () - // teclas de seleção se (keysDown [K_LEFT]) { car.changeAngleBy (-5) - } // fim se se (keysDown [K_RIGHT]) { car.changeAngleBy (5) - } // fim se se (keysDown [K_UP]) { car.changeSpeedBy (1) - } // fim se se (keysDown [K_DOWN]) { car.changeSpeedBy (-1) - } // fim secar.update () -} // update final
A codificação real é muito fácil de entender:
Limpar a cena.
Como de costume, a primeira ordem de negócios no atualizar() função é a de limpar a sala de jogos. Certifique-se de que você tenha apagado o quadro anterior antes de fazer qualquer outra coisa.
Verifique se há uma esquerda; arrow imprensa.
Use o keysDown mecanismo para determinar se a seta para a esquerda está actualmente pressionado.
Se a seta para a esquerda é pressionado, virar o carro para a esquerda.
Se o usuário está pressionando a esquerda; tecla de seta, vire o carro cinco graus sentido anti-horário. Use o changeAngleBy () método para alterar a aparência visual do carro, bem como a direção que está viajando.
Repita o procedimento para a seta para a direita.
Video: APRENDA javascript (ES6) CRIANDO UM JOGO #1 - INTRODUÇÃO
A verificação seta para a direita é semelhante, mas desta vez virar o carro cinco graus no sentido horário.
Use a seta para cima para acelerar.
Se o usuário pressionar a seta para cima, mudar a velocidade do carro. Use um valor positivo para acelerar o carro. Não vai demorar muito, porque este código está sendo verificado 20 vezes por segundo.
Retardar o carro para baixo com a seta para baixo.
Use um mecanismo semelhante para a seta para baixo. Alterar a velocidade por um valor negativo para desacelerar o carro. Esta abordagem permite valores negativos, eo carro fará o backup se quiser.
Desenhe o carro em sua nova posição.
É criticamente importante lembrar que chamar funções de movimento do Sprite não altera a localização do carro! Ele só muda dados internos na memória do jogo. Você deve chamar o carro de atualizar() método para ver essas mudanças na ação.