1
resposta

Bolinha não colidi no eixo X e raquete não se movimenta para cima e para baixo, somente para cima e para frente

  • let xBolinha = 300;
  • let yBolinha = 200;
  • let diametro = 30;
  • let raio = diametro / 2;
  • let velocidadeXbolinha = 6;
  • let velocidadeYbolinha = 6;
  • let xRaquete = 5;
  • let yRaquete = 150;
  • let raqueteComprimento = 10;
  • let raqueteAltura = 90;
  • function setup() {
  • createCanvas(600, 400);
  • }
  • function draw() {
  • background(0);
  • mostraBolinha();
  • movimentaBolinha();
  • verificaColisao();
  • mostraRaquete();
  • movimentaRaquete();
  • verificaColisaoRaquete();
  • }
  • function mostraBolinha() {
  • circle(xBolinha, yBolinha, diametro);
  • }
  • function movimentaBolinha() {
  • xBolinha += velocidadeXbolinha;
  • yBolinha += velocidadeYbolinha;
  • }
  • function verificaColisao() {
  • if(xBolinha > width || xBolinha - raio < 0) {
  • velocidadeYbolinha *= -1;
  • }
  • if(yBolinha > height || yBolinha - raio < 0) { velocidadeYbolinha *= -1;
  • }
  • }
  • function mostraRaquete() {
  • rect(xRaquete, yRaquete, raqueteComprimento, raqueteAltura);
  • }
  • function movimentaRaquete() {
  • if (keyIsDown(UP_ARROW)) {
  • yRaquete -= 10;
  • }
  • if(keyIsDown(DOWN_ARROW)) {
  • xRaquete += 10;
  • }
  • }
  • function verificaColisaoRaquete(){
  • if(xBolinha - raio < xRaquete && yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete){
  • velocidadeXbolinha *= -1;
  • }
  • }
1 resposta

Olá, Thiago, veja os erro que encontrei (linha 39):

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Na função verificaColisao, o primeiro if deve considerar a velocidadeXBolinha (no seu código, está velocidadeYBolinha nos dois if's).

O segundo erro é este (linha 56):

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Na função movimentaRaquete, nos dois if, deve-se considerar a posição yRaquete (no seu código, o segundo if está com xRaquete). Isso, porque a raquete deve se mover apenas na vertical (eixo y).

Procure fazer estes ajustes e, qualquer coisa, volte a compartilhar aqui no fórum.

Espero ter ajudado. Bons estudos!