Oi! Percebi que bolinha sempre colide no mesmo ponto da raquete do oponente, ou seja, o oponente sempre acerta. Alterei o codigo da function movimentaRaqueteOponente para ver se concertava.
ALTEREI DISSO: function movimentaRaqueteOponente(){ velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento/2 - 30; yRaqueteOponente += velocidadeYOponente; }
PARA ISSO: function movimentaRaqueteOponente(){ velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento/2 - 82; yRaqueteOponente += velocidadeYOponente; }
Agora ele sempre erra, se altero para 81, a raquete sempre acerta, ou seja, a bolinha não acerta pontos aleatorios da raquete do oponente. Utilizei o codigo do professor, mas acontece o mesmo erro. Se alguem puder me ajudar, agradeço.
//Variaveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
let bolinhaDiametro = 25;
let raio = bolinhaDiametro/2;
//Variaveis velocidade da bolinha
let velocidadeXBolinha = 3;
let velocidadeYBolinha = 3;
//Variaveis da minha raquete
let xRaquete = 10;
let yRaquete = 150;
let raqueteAltura = 80;
let raqueteComprimento = 10;
let meusPontos = 0;
// Variaveis da raquete oponente
let xRaqueteOponente = 580;
let yRaqueteOponente = 150;
let velocidadeYOponente;
let pontosOponente = 0;
let colidiu = false;
function setup() {
createCanvas(600,400);
}
function draw() {
background(0);
mostraBolinha();
mostraRaquete(xRaquete, yRaquete);
movimentaBolinha();
verificaColisaoBorda();
movimentaMinhaRaquete();
//verificaColisaoMinhaRaquete();
mostraRaquete(xRaqueteOponente, yRaqueteOponente);
movimentaRaqueteOponente();
verificaColisaoRaquete(xRaquete, yRaquete);
verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente);
mostraPlacar();
verificaPlacar();
}
function mostraBolinha () {
circle (xBolinha, yBolinha, bolinhaDiametro);
}
function mostraRaquete (x, y) {
rect (x, y, raqueteComprimento, raqueteAltura);
}
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 movimentaMinhaRaquete(){
if(keyIsDown (UP_ARROW)){
yRaquete -= 10;
}
if(keyIsDown (DOWN_ARROW)){
yRaquete += 10
}
}
function verificaColisaoMinhaRaquete (){
if(xBolinha - raio < xRaquete && yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete){
velocidadeXBolinha *= -1
}
}
function verificaColisaoRaquete(x, y){
colidiu = collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
if(colidiu){
velocidadeXBolinha *= -1
}
}
function movimentaRaqueteOponente(){
velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento/2 - 81;
yRaqueteOponente += velocidadeYOponente;
}
function mostraPlacar(){
fill(255);
text(meusPontos, 278, 26);
text(pontosOponente, 321, 26);
}
function verificaPlacar(){
if(xBolinha > 585){
meusPontos += 1;
}
if(xBolinha < 15){
pontosOponente += 1
}
}