1
resposta

keyTyped not defined

Estou mudando meu jogo de Ping Pong e queria ter o controle da raquete do oponente. Consigo movimentar minha raquete com as setas para cima e para baixo, mas, sempre que eu tento configurar para a raquete do oponente movimentar-se quando as letras "a" e "q" são clicadas, aparece o erro "keyTyped is not defined".

function movimentaRaquete(){
  if (keyTyped (key == 'q')){
    yRaquete[0] -= 10;
  }
  if (keyTyped (key == 'a')){
    yRaquete[0] += 10;
  }
}

Já tentei com keyTyped e keyReleased, mas acontece a mesma coisa. O mesmo não ocorre se coloco keyIsDown, que funciona corretamente.

function movimentaRaquete(){ if (keyIsDown (RIGHT_ARROW)){ yRaquete[0] -= 10; } if (keyIsDown (LEFT_ARROW)){ yRaquete[0] += 10; } }

Não sei se estou usando a função corretamente. Alguém consegue me ajudar?

1 resposta

Ei, Carolina! Tudo certo?

Obrigada pela paciência em obter um retorno.

Antes de mais nada: notei que você usou arrays para chamar a variável, certo? Super interessante! Parabéns por se aprofundar nos estudos e até trazer algo extra pro seu código.

Sobre o erro: provavelmente está no parenteses em que as teclas estão contidas e no keyTyped. Sua lógica foi muito boa, o uso da igualdade foi uma ótima escolha, contudo, vamos fazer de outra maneira.

function movimentaRaquete(){
  if (keyTyped (key == 'q')){
    yRaquete[0] -= 10;
  }
  if (keyTyped (key == 'a')){
    yRaquete[0] += 10;
  }
}

Ao invés de usarmos a parte key == 'q' ou key == 'a', nós temos códigos próprios para cada tecla do teclado. Neste link você pode pressionar qualquer tecla que ele irá te informar um número.

O número será necessário para formarmos o código do jogo. Ele ficará desta forma:


function movimentaRaquete(){
  if (keyIsDown(81)) {
    yRaquete[0] -= 10;
  }
  if (keyIsDown(65)) {
    yRaquete[0] += 10;
  }
}

No lugar de keyTyped coloquei o keyIsDown, pois com os números ele roda certinho. Não pude ver seu código inteiro para me basear e usar o keyTyped, mas se ainda estiver falhando com o código que te passei, estou à disposição para te ajudar!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado! ✓.