Ativando Entradas do Usuário

Entradas do Usuário

As entradas (inputs) são essenciais porque, sem o jogador usar controles para interagir, nosso jogo não seria realmente um jogo.
Embora o Phaser suporte vários tipos de entradas, vamos ver três que você vai usar no jogo Space Invaders.


Setas do Teclado

Vamos começar com um dos controles mais importantes: as setas do teclado.
Primeiro, vamos criar uma variável que detecta quando o jogador pressiona alguma seta.

this.cursors = this.input.keyboard.createCursorKeys();

Para usar essa variável, você pode escolher entre 4 verificações booleanas:

this.cursors.up.isDown
this.cursors.down.isDown
this.cursors.left.isDown
this.cursors.right.isDown

Cada uma dessas verificações será true se a tecla correspondente estiver pressionada, e false se não estiver.


Barra de Espaço

Para adicionar a entrada da barra de espaço, o processo é bem parecido com o das setas.
Primeiro criamos uma variável que detecta quando a barra de espaço é pressionada:

this.spacebar = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.SPACE);

Depois, usamos uma verificação booleana para checar se o botão foi pressionado:

Phaser.Input.Keyboard.JustDown(this.spacebar)

Clique Único

Você também pode seguir o mesmo processo usado para as setas e a barra de espaço para detectar cliques, mas vamos usar um método um pouco diferente aqui, porque é algo que provavelmente você vai usar no Space Invaders.

this.input.once("pointerdown", this.restart, this);

Essa linha chama o método this.restart quando o jogador clica.
Porém, é um input de uso único, ou seja, depois que o jogador clicar uma vez, ele não funcionará novamente até ser chamado de novo no código.

Normalmente, esse tipo de entrada é usado dentro do update() ou de funções auxiliares, e não no create().