Eu jogo o jogo normalmente mas em algumas situações do game a bolinha ultrapassa a borda e computa mais pontos para o adversário. Segue o código completo:
// variáveis da bolinha
let xbolinha = 400
let ybolinha = 200
let diametro = 30
let velocidadexbolinha = 8
let velocidadeybolinha = 8
let raio1 = diametro/2
let raio2 = diametro/-2
//variáveis raquete
let xraquete = 10
let yraquete = 150
let larguraraquete = 10
let alturadaraquete = 90
let velocidaderaquete = 7
//variáveis raquete oponente
let xraqueteoponente = 580
let yraqueteoponente = 150
let larguraraqueteoponente = 10
let alturadaraqueteoponente = 90
let velocidadeyraqueteoponente;
//placar
let meuspontos = 0;
let pontosdooponente = 0;
let chancedeerrar = 45;
function setup() {
createCanvas(600, 400);
}
function draw() {
background(0);
mostrarbolinha();
movimentarbolinha();
verificarbordas();
mostrarraquete(xraquete, yraquete);
mostrarraquete(xraqueteoponente, yraqueteoponente);
movimentaraquete();
movimentaraqueteoponente();
colisaodaraquetenabolinha();
colisaodaraqueteoponentenabolinha();
placar();
fill (255);
}
function mostrarbolinha(){
circle(xbolinha,ybolinha,diametro)
}
function movimentarbolinha(){
xbolinha += velocidadexbolinha
ybolinha += velocidadeybolinha
}
function verificarbordas(){
if (xbolinha + raio1 > width || xbolinha + raio2 < 0){
velocidadexbolinha *= -1;
}
if(ybolinha + raio1 > height || ybolinha + raio2 < 0){
velocidadeybolinha *= -1;
}
}
function mostrarraquete(x,y){
rect(x, y, larguraraquete, alturadaraquete)
}
function movimentaraquete(){
if(keyIsDown(UP_ARROW)){
yraquete -= 1 * velocidaderaquete;
}
if(keyIsDown(DOWN_ARROW)){
yraquete += 1 *velocidaderaquete;
}
}
function movimentaraqueteoponente(){
velocidadeyraqueteoponente = ybolinha -yraqueteoponente - larguraraqueteoponente/2 - 30;
yraqueteoponente += velocidadeyraqueteoponente + chancedeerrar
}
function colisaodaraquetenabolinha(){
if (xbolinha - raio1 < xraquete +larguraraquete && ybolinha - raio1 < yraquete + alturadaraquete && ybolinha -raio1 > yraquete){
velocidadexbolinha *= -1;
}
}
function colisaodaraqueteoponentenabolinha(){
if (xbolinha + raio1 > xraqueteoponente + larguraraqueteoponente && ybolinha - raio1 < yraqueteoponente + alturadaraqueteoponente && ybolinha +raio1 > yraqueteoponente){
velocidadexbolinha *= -1;
}
}
function placar(){
fill(color(128,0,0));
rect (258,11,40,25);
fill(255);
textSize(15);
text(meuspontos,271,30);
fill(color(128,0,0));
rect (358,11,40,25);
fill(255);
textSize(15);
text(pontosdooponente,371,30);
if (xbolinha > 590){
meuspontos += 1;
}
if(xbolinha< 10){
pontosdooponente += 1;
}
}