Boa tarde! Mesmo com as atualizações dos códigos e criação da funcão chanceDeErrar(), o opononente continua não errando. Tentei também no movimentaRaqueteOponente() fazer alteração de valor mas não resolveu.
velocidadeYOponente = yBolinha -yRaqueteOponente - raqueteComprimento / 2 - 30; (Aqui tente substituir o 30 por 50, 80, mas sem resultados); yRaqueteOponente += velocidadeYOponente + chanceDeErrar; calculaChanceDeErrar();
//variáveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 20; let raio = diametro / 2;
//velocidade da bolinha let velocidadeXBolinha = 6; let velocidadeYBolinha = 6; let raqueteComprimento = 10; let raqueteAltura = 90;
//variáveis da raquete let xRaquete = 5; let yRaquete = 150;
//variáveis do oponente let xRaqueteOponente = 585; let yRaqueteOponente = 150; let velocidadeYOponente; let chanceDeErrar = 0;
let colidiu = false;
//placar do jogo let meusPontos = 0; let pontosDoOponente = 0;
//sons do jogo let raquetada; let ponto; let trilha;
function preload(){ trilha = loadSound("trilha.mp3"); ponto = loadSound("ponto.mp3"); raquetada = loadSound("raquetada.mp3"); }
function setup() { createCanvas(600, 400); trilha.loop(); }
function draw() { background(0); mostraBolinha(); movimentaBolinha(); verificaColisaoBorda(); mostraRaquete(xRaquete, yRaquete); movimentaMinhaRaquete(); //verificaColisaoRaquete(); verificaColisaoRaquetes(xRaquete, yRaquete); mostraRaquete(xRaqueteOponente, yRaqueteOponente); movimentaRaqueteOponente(); verificaColisaoRaquetes(xRaqueteOponente, yRaqueteOponente); 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 verificaColisaoRaquetes(x, y){ colidiu = collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio); if(colidiu){ velocidadeXBolinha *= -1 raquetada.play(); } }
function movimentaRaqueteOponente(){ velocidadeYOponente = yBolinha -yRaqueteOponente - raqueteComprimento / 2 - 30; yRaqueteOponente += velocidadeYOponente + chanceDeErrar; calculaChanceDeErrar(); }
function incluiPlacar(){ stroke(255); textAlign(CENTER); textSize(18); textStyle(BOLD); fill(color(255, 140, 0)); rect(150, 10, 40, 20); fill(255); text(meusPontos, 170, 26); fill(color(255, 140, 0)); rect(450, 10, 40, 20); fill(255); text(pontosDoOponente, 470, 26); }
function marcaPonto(){ if (xBolinha > 590){ meusPontos ++; ponto.play(); } if (xBolinha < 10){ pontosDoOponente ++; ponto.play(); } }
function calculaChanceDeErrar() { if (pontosDoOponente >= meusPontos) { chanceDeErrar += 50 if (chanceDeErrar >= 39){ chanceDeErrar = 40 } } else { chanceDeErrar -= 1 if (chanceDeErrar <= 35){ chanceDeErrar = 35 } } }