durante minha tentativa de solucionar o Bug eu criei uma variavel (let bordas = 10;
)
adicionei a function :
function reparo(){
if(xBolinha < bordas){
xBolinha = 300;
yBolinha = 200;
console.log("### deu certo! ###")
seguindo o seguinte codigo:
porem quanto a bolinha marca Ponto reinicia normal como fiz, porem ele marca 3 pontos ao inves de 1, tem algo que possa mecher para consertar isso?
//variavel bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 23;
let raio = diametro / 2;
let velocidadeXbolinha = 5;
let velocidadeYbolinha = 5;
//variaveis raquete
let xRaquete = 10;
let yRaquete = 160;
let comprimentoRaquete = 10;
let alturaRaquete = 100;
let bordas = 10;
//raquete oponente
let xRaqueteOponente = 580;
let yRaqueteOponente = 160;
let velocidadeYoponente ;
//pontos
let meusPontos = 0;
let pontosOponente = 0;
let colidiu = false;
function setup() {
createCanvas(600, 400);
}
function draw() {
background(0);
mostraBolinha();
movimentaBolinha();
colisaoBolinha();
mostraRaquete(xRaquete ,yRaquete);
movimentaRaquete();
//colisaoRaquete();
mostraRaquete(xRaqueteOponente ,yRaqueteOponente);
verificaColisaoRaquete(xRaquete, yRaquete)
verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente)
movimentaRaqueteOponente();
incluirPlacar();
marcaPonto();
reparo();
}
function mostraBolinha(){
circle(xBolinha, yBolinha, diametro);
}
function movimentaBolinha(){
xBolinha += velocidadeXbolinha;
yBolinha += velocidadeYbolinha;
}
function colisaoBolinha(){
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, comprimentoRaquete, alturaRaquete, bordas);
}
function movimentaRaquete(){
if(keyIsDown(UP_ARROW)){
yRaquete -= 10;
}
if(keyIsDown(DOWN_ARROW)){
yRaquete += 10;
}
}
function colisaoRaquete(){
if(xBolinha - raio < xRaquete + comprimentoRaquete && yBolinha - raio < yRaquete + alturaRaquete && yBolinha + raio > yRaquete){
velocidadeXbolinha *= -1;
}
}
function verificaColisaoRaquete(x, y){
colidiu =
collideRectCircle(x, y,comprimentoRaquete, alturaRaquete, xBolinha, yBolinha, raio)
if(colidiu){
velocidadeXbolinha *= -1;
}
}
function movimentaRaqueteOponente(){
velocidadeYoponente = yBolinha - yRaqueteOponente - comprimentoRaquete /2 - 30;
yRaqueteOponente += velocidadeYoponente
}
function incluirPlacar(){
textAlign(CENTER);// com a palavra center centraliza o texto
textSize(16); // aumentar tamanho texto
fill(color(255, 140, 0)) // cor laranja
stroke(255); // borda branca
rect(130, 10, 40, 20 ) //caixinha do placar
fill(255); //prencher a cor do zero
text(meusPontos, 150 , 26); // texto
fill(color(255, 140, 0)) // cor laranja
stroke(255); // borda branca
rect(430, 10, 40, 20) // caixinha do placar
fill(255); //prencher a cor do zero
text(pontosOponente, 450, 26); // texto
}
function marcaPonto(){
if(xBolinha > 585){
meusPontos += 1 ;
}
if(xBolinha < 15){
pontosOponente += 1;
}
}
function reparo(){
if(xBolinha < bordas){
xBolinha = 300;
yBolinha = 200;
console.log("### deu certo! ###")
}
}