1
resposta

[Bug] [erro] bolinha ultrapassa a requete do oponente

A bolinha continua ultrapassando a raquete do oponente e contabilizando o ponto

//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;

//variáveis do oponente let xRaqueteOponente = 585; let yRaqueteOponente = 150; let velocidadeYOponente;

let colidiu = false;

//placar do jogo let meusPontos = 0; let pontosOponente = 0;

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

function draw() { background(0); mostraBolinha(); movimentaBolinha(); verificaColisaoBorda(); mostraRaquete (xRaquete,yRaquete); movimentaMinhaRaquete(); verificaColisaoRaquete(); mostraRaquete(xRaqueteOponente, yRaqueteOponente); movimentaRaqueteOponente(); incluiPlacar(); marcaPonto();

}

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 (x,y){ rect(x, y, raqueteComprimento, raqueteAltura); }

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

function verificaColisaoRaquete (){ if (xBolinha - raio < xRaquete + raqueteComprimento && yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete ) { velocidadeXBolinha *= -1; } }

function movimentaRaqueteOponente (){ velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento/2-30; yRaqueteOponente += velocidadeYOponente; }

function incluiPlacar (){ fill (225) text(meusPontos, 278, 26); text(pontosOponente, 321, 26); }

function marcaPonto (){ if (xBolinha > 590){ meusPontos +=1; } if (xBolinha <10){ pontosOponente +=1; } }

1 resposta

Olá, Maithe. Tudo bem?

A bolinha está passando a raquete do oponete porque você não definiu a função para colidir com ela.

Na sua função

function verificaColisaoRaquete (){
  if (xBolinha - raio < xRaquete + raqueteComprimento && yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete ) { velocidadeXBolinha *= -1; 
      }
  }

você passou os parametros apenas dua sua raquete. Faça igual fez na função de mostraRaquete. Passe os parametros x e y. E na hora que chamar a função verificaColisãoRaquete(), coloque os parametros de cada raquete que vai funcionar.

Espero ter ajudado ;)