Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Minha raquete só movimenta para baixo

Fala pessoal, Boa tarde a todos!

Após inserção dos comandos abaixo, percebi que minha raquete só movimenta para baixo. Poderiam verificar se o código está correto?

Desde já, muito obrigado!

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

//velocidade da bolinha let velocidadeXBolinha = 6; let velocidadeYBolinha = 6;

//variáveis da raquete let xRaquete = 5; let yRaquete = 150; let raqueteComprimento = 10; let raqueteAltura = 90;

function setup() { createCanvas(600, 400); }

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

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, raqueteComprimento, raqueteAltura); }

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

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

1 resposta
solução!

Ola Aederson,

Acontece que você declarou duas funções com o nome de "movimentaMinhaRaquete" onde uma faz o movimento para cima e outra para baixo. Isso gera conflito e por isso não está funcionando. Você precisa colocar os dois códigos de verificação para cima e para baixo dentro de apenas uma função. Conforme exemplo:

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