Estou tenta montando o jogo apara ser jogado em Multplay, mas estou me deparando com a seguinte situação. quando a bola passa da raquete, as vezes ela fica prasa atrás dela e nisso não para de contar pontos.
estou tentando pensar em uma forma de toda vez que um ponto for marcado, o console enviar a bola para posição inicial e retomar o jogo.
// Dados da bola
let xBall = 300;
let yBall = 200;
let dBall = 10;
let rBall = (dBall / 2);
//Dados Player 1
let xPlayer1 = 5;
let yPlayer1 = 170;
let widthPlayer1 = 5;
let heightPlayer1 = 60;
//Dados Player 2
let xPlayer2 = 590;
let yPlayer2 = 170;
let widthPlayer2 = 5;
let heightPlayer2 = 60;
let spedOfPlayertwo;
//Velocida bola
let xSpedOfTheBall = 6;
let ySpedOfTheBall = 6;
//Placar
let scoresPlayer1 = 0;
let scoresPlayer2 = 0;
//Background
function setup() {
createCanvas(600, 400);
}
//Draw
function draw() {
background(0);
back();
seeBall();
touchTheMargin();
playerOneMove();
playerTowMove();
touchPlayerOne();
touchPlayerTwo();
scoreboard();
countPonits();
}
//Bola
function seeBall(){
fill(color(0,225,0));
circle(xBall,yBall,dBall);
xBall += xSpedOfTheBall;
yBall += ySpedOfTheBall;
}
//Toque da bola na margem
function touchTheMargin(){
if ( xBall+rBall > width || xBall < (0 + rBall)){
xSpedOfTheBall *= -1;
}
if ( yBall+rBall > height || yBall < (0 + rBall)){
ySpedOfTheBall *= -1;
}
}
//Movimentação Jogador 1
function playerOneMove(){
fill(color(0,225,0));
rect(xPlayer1,yPlayer1,widthPlayer1,heightPlayer1);
if(keyIsDown(87)){
yPlayer1 -= 10;
}
if(keyIsDown(83)){
yPlayer1 += 10;
}
}
//Movimentação Jogador 2
function playerTowMove(){
fill(color(0,225,0));
rect(xPlayer2,yPlayer2,widthPlayer2,heightPlayer2);
if(keyIsDown(UP_ARROW)){
yPlayer2 -= 10;
}
if(keyIsDown(DOWN_ARROW)){
yPlayer2 += 10;
}
}
//Toque no Jogador 1
function touchPlayerOne(){
if(xBall - rBall < xPlayer1 + widthPlayer1 && yBall - rBall < yPlayer1 + heightPlayer1 && yBall + rBall > yPlayer1){
xSpedOfTheBall *= -1;
}
}
//Toque no Jogador 2
function touchPlayerTwo(){
if(xBall + rBall > xPlayer2 && yBall + rBall < yPlayer2 + heightPlayer2 && yBall + rBall > yPlayer2){
xSpedOfTheBall *= -1;
}
}
//Placar
function scoreboard(){
stroke(255);
textAlign(CENTER);
textSize(20);
fill(color(255,140,0));
rect(150,5,100,25);
fill(255);
text(scoresPlayer1,200,26);
text( "X", 300,26);
fill(color(255,140,0));
rect(350,5,100,25);
fill(255);
text(scoresPlayer2,400,26);
}
//Contardor de Pontos
function countPonits(){
if(xBall > 595){
scoresPlayer1 += 1;
}
if(xBall < 5){
scoresPlayer2 += 1;
}
}
//Backgorund
function back(){
fill(color(0,0,0));
ellipse(300,200,600,300);
circle(300,200,100);
line(300,200,300,50);
line(300,200,300,350);
}