1
resposta

[Dúvida] minha raquete não se movimenta para baixo

quando tento movimentar minha raquete para baixo aparece que a função keyIsDown não está definida

o código está assim:

function movimentaMinhaRaquete() {
  if (keyIsDown(UP_ARROW)) {
    yRaquete -= 10;
  }
}

if (keyIsDown(DOWN_ARROW)) {
    yRaquete += 10;
  }

https://editor.p5js.org/vhcurydearaujo/sketches/iWyCN72JL

[sketch.js, line 55] "keyIsDown" is not defined in the current scope. If you have defined it in your code, you should check its scope, spelling, and letter-casing (JavaScript is case-sensitive).

+ More info: https://p5js.org/examples/data-variable-scope.html 
Did you just try to use p5.js's keyIsDown() function? If so, you may want to move it into your sketch's setup() function.

+ More info: https://github.com/processing/p5.js/wiki/p5.js-overview#why-cant-i-assign-variables-using-p5-functions-and-variables-before-setup 

aparece este erro quando tento movimentar

https://editor.p5js.org/vhcurydearaujo/sketches/iWyCN72JL

o código do jogo

1 resposta

Oi, Vitor! Tudo bom contigo?

Para a função movimentaMinhaRaquete() ser executada sem erros, é necessário que ambas estruturas condicionais (IF) estejam dentro dela. Note que, em seu código, a condição que verifica se keyIsDown(DOWN_ARROW) é iniciada após o fechamento da função.

Depois de mover o segundo bloco condicional para dentro de movimentaMinhaRaquete(), chegaremos no seguinte resultado:

function movimentaMinhaRaquete() {
  if (keyIsDown(UP_ARROW)) {
    yRaquete -= 10;
  }
  
  if (keyIsDown(DOWN_ARROW)) {
    yRaquete += 10;
  }
}

Além disso, Vitor, lembre-se de chamar movimentaMinhaRaquete() na função draw(), deste modo:

function draw() {
  // restante do código...
  movimentaMinhaRaquete();
}

Espero que dê tudo certo! Qualquer dúvida, fico à disposição.

Um abraço!

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