Oi, Yan
Minha solução foi:
Só marcar um novo ponto se bolinha passar pelo meio do jogo
let xBola = 300;
let yBola = 200;
let diametro = 25;
let velocidadeXBola = 10;
let velocidadeYBola = 10;
let raio = diametro / 2;
//variáveis da raquete
let xRaquete = 5;
let yRaquete = 150;
let comprimentoRaquete = 10;
let alturaRaquete = 90;
let colidiu = false
let passouMeio = true; // se a bolinha passou no meio do jogo
//variaveis oponente
let xRaqueteOpo = 585;
let yRaqueteOpo = 150;
let velocidadeYOpo
//placar do game
let meusPontos = 0;
let pontosOponente = 0;
function mostraBola () {
circle(xBola, yBola, diametro);
}
function movimentoBola () {
xBola += velocidadeXBola;
yBola += velocidadeYBola;
}
function movimentoRaquete(){
if (keyIsDown(UP_ARROW)){
yRaquete -= 10;
}
if (keyIsDown(DOWN_ARROW)){
yRaquete += 10;
}
}
function colisaoBorda(){
if (xBola + raio > width || xBola - raio < 0){
velocidadeXBola *= -1
}
if (yBola + raio > height || yBola - raio < 0){
velocidadeYBola *= -1
}
}
function mostraRaquete(x,y){
rect(x, y, comprimentoRaquete, alturaRaquete)
}
function movimentoRaqueteOpo(){
velocidadeYOpo = yBola - yRaqueteOpo - comprimentoRaquete / 2 - 50
yRaqueteOpo += velocidadeYOpo
}
function colisaoRaqueteGit(x,y){
colidiu = collideRectCircle(x, y, comprimentoRaquete, alturaRaquete, xBola, yBola, raio);
if(colidiu){
velocidadeXBola *= -1}
}
function incluiPlacar(){
fill(255)
text(meusPontos, 278, 26)
text(pontosOponente, 321, 26)
}
function marcaPontos(){ // foi modificado
if (xBola > 590 && passouMeio){
meusPontos += 1;
passouMeio = false;
}
if (xBola < 12 && passouMeio){
pontosOponente += 1;
passouMeio = false;
}
}
function setup() {
createCanvas(600, 400);
}
function draw() {
background(0);
mostraBola();
movimentoBola();
colisaoBorda();
mostraRaquete(xRaquete, yRaquete);
movimentoRaquete();
colisaoRaqueteGit(xRaquete, yRaquete);
colisaoRaqueteGit(xRaqueteOpo, yRaqueteOpo);
mostraRaquete(xRaqueteOpo, yRaqueteOpo);
movimentoRaqueteOpo();
incluiPlacar();
marcaPontos();
verificaPassouMeio(); // evitar pontos multiplos
}
function verificaPassouMeio() {
if (xBolinha > width/2- 50 && xBolinha < width/2 + 50) {
passouMeio = true;
}
}
Caso este post tenha lhe ajudado,
marque-o como solução
.
Bons Estudos!
🤓