Pessoal, já fiz e refiz as aulas, já mudei o código e olhei linha por linha, mas a bolinha só move no eixo Y quando acrescento a function movimentaRaqueteOponente:
//variáveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametroBolinha = 20; let raio = diametroBolinha / 2;
//velocidade da bolinha let velocidadeXBolinha = 2; let velocidadeYBolinha= 2;
//variáveis da raquete let xRaquete = 5; let yRaquete = 150; let raqueteComprimento = 10; let raqueteAltura = 90;
//variáveis do oponente let xRaqueteOponente = 585; let yRaqueteOponente = 150; let velocidadeYOponente;
function setup(){ createCanvas(600, 400);
}
function draw(){ background(0) mostraBolinha(); movimentaBolinha(); verificaColisaoBorda () mostraRaquete(xRaquete, yRaquete); movimentoDaRaquete(); verificaColisaoRaquete(xRaquete, yRaquete); mostraRaquete(xRaqueteOponente, yRaqueteOponente); movimentaRaqueteOponente(); verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente); }
function mostraBolinha() { circle (xBolinha, yBolinha, diametroBolinha) }
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(x, y) { rect(x, y,raqueteComprimento, raqueteAltura); }
function movimentoDaRaquete(){ if(keyIsDown(UP_ARROW)){ yRaquete -= 10; }
if(keyIsDown(DOWN_ARROW)){ yRaquete += 10; } }
function verificaColisaoRaquete(x, y) { if (xBolinha - raio < x + raqueteComprimento && yBolinha - raio < y + raqueteAltura && yBolinha + raio > y){ velocidadeXBolinha *= -1; } }
function movimentaRaqueteOponente(x, y) { velocidadeYOponente = yBolinha -yRaqueteOponente -raqueteComprimento / 2 - 30; yRaqueteOponente += velocidadeYOponente; }