Controles do Jogador
Gerenciado de forma centralizada pelo inputManager.ts , que abstrai a complexidade da API de entrada do Phaser e fornece uma interface simplificada para o restante do jogo.
inputManager.ts
Localização
src/components/inputManager.ts
Propósito
Classe responsável por lidar com a configuração e o acesso às entradas do teclado, centralizando toda a lógica de input do jogo.
Principais Responsabilidades
setupControls(scene: Phaser.Scene)
Função: Inicializa os listeners de teclado na cena fornecida e mapeia teclas específicas para ações do jogo.
Teclas configuradas no Arretado:
Movimento: Teclas
W
,A
,S
,D
(cima, esquerda, baixo, direita) e/ou as teclas de seta correspondentes, para controlar a movimentação do jogador.Boost: Tecla
Espaço
, utilizada para ativar temporariamente um aumento de velocidade para o jogador (possui tempo de recarga).Pausa: Tecla
P
, usada para pausar e retomar o jogo, alternando a visibilidade e o estado daPauseScene
.
getKeys()
Função: Retorna um objeto contendo as referências aos objetos de tecla do Phaser (
Phaser.Input.Keyboard.Key
).Uso: Permite que outras classes, como
Player
eGameScene
, consultem o estado atual de cada tecla (se está pressionada, se foi pressionada recentemente, etc.) sem acessar diretamente o gerenciador de entrada do Phaser.
Implementação no Player.ts
No construtor
O
controlKeys
do jogador é inicializado chamandoinputManager.getKeys()
, obtendo as referências para as teclas configuradas.
No playerMovement()
Verifica o estado das teclas de movimento (
right
,left
,up
,down
) para determinar a direção do movimento do jogador.Verifica a tecla
space
para ativar o boost, controlando o tempo de recarga e emitindo um evento (playerEvents.boostActivated
) através doglobalEventEmitter
, para que a UI exiba o cooldown.
No playerAnimation()
As animações do jogador (
lampiaoRun
elampiaoIdle
) são acionadas com base no retorno doplayerMovement()
, que indica se o jogador está se movendo ou parado.
Implementação no GameScene.ts
No create()
inputManager.setupControls(this)
é chamado para garantir que os controles de entrada estejam ativos para a cena de jogo.
No handlePause()
Este método verifica se a tecla de pausa (
P
) foi pressionada.Se sim:
Alterna o estado de pausa da
GameScene
e dogameHud
.Lança ou para a
PauseScene
conforme necessário.
Atualizado