Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Raquete não movimenta para cima

Olá, então, minha raquete não está movimentando para CIMA, apenas para BAIXO, como posso resolver isso?

//variáveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 20;
let raio = diametro / 2

//variáveis da raquete
let xRaquete = 5
let yRaquete = 150
let comprimentoRaquete = 10 
let altura = 80  

//velocidade da bolinha
let velocidadexBolinha = 6
let velocidadeyBolinha = 6
function setup() {
  createCanvas(600, 400);
}

function draw() {
  background(0);
  mostraBolinha();
  //movimentaBolinha();
  verificaColisaoBorda();
  mostraRaquete()
  movimentaRaquete ()
}

function mostraBolinha () {
  circle(xBolinha, yBolinha, diametro );
}

function movimentaBolinha () {
  xBolinha += velocidadexBolinha;
  yBolinha += velocidadeyBolinha;
}
function verificaColisaoBorda () {
  if (xBolinha + raio > width || 
     xBolinha - raio < 0){
    velocidadexBolinha *= -1
  }
  if (yBolinha + raio > height ||
     yBolinha - raio <0) {
    velocidadeyBolinha *= -1;
  }
}

function mostraRaquete () {
  rect( xRaquete, yRaquete, comprimentoRaquete, altura);
}

function movimentaRaquete() {
if (keyIsDown(UP_ARROW)){
yRaquete -= 10;
}
}
function movimentaRaquete () {
if (keyIsDown(DOWN_ARROW)){
yRaquete += 10;
}
}
2 respostas
solução!

Oi, Matheus, tudo bem? Não seria necessário agrupar esses comandos em duas funções, você poderia executar apenas uma.

Em vez de usar duas funções, recomendo que você tente usar apenas uma função, mas usando IF e Else IF.

Você poderia fazer, se tecla pra cima estivesse pressionada subtraia 10, se não se(Else If) se tecla pra baixo estiver pressionada adicione 10.

Vou tentar não te entregar a solução de mão beijada, pelo seu bem, recomendo que tente fazer isso, caso não consiga retorne a comentar no tópico. :)

O problema não se baseia em colocar uma ou mais funções, e sim que a função está correta, mas a bolinha simplesmente não movimenta para cima.