Meu jogo está com conseguinte bug como mostra na gif abaixo: Só acontece na parte de cima de ambos raquetes, como posso revolver?
Meu jogo está com conseguinte bug como mostra na gif abaixo: Só acontece na parte de cima de ambos raquetes, como posso revolver?
olá Matheus, compartilha o seu código para podermos lê ajudar.
//variáveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 15; let raio = diametro / 2;
//velocidade da bolinha let velocidadeXBolinha = 6; let velocidadeYBolinha = 6;
//variáveis da raquete let xRaquete = 5; let yRaquete = 150; let raqueteComprimento = 10; let raqueteAltura = 90;
let colidiu = false;
//variáveis do oponente let xRaqueteOponente = 585; let yRaqueteOponente = 150; let velocidadeYOponente;
//placar do jogo let meusPontos = 0; let pontosDoOponente = 0;
//sons do jogo let raquetada; let ponto; let trilha;
let chanceDeErrar = 0;
function preload() { trilha = loadSound("trilha.mp3"); ponto = loadSound("ponto.mp3"); raquetada = loadSound("raquetada.wav"); }
function setup() { createCanvas(600, 400); trilha.loop(); }
function draw() { background(0); mostraBolinha(); movimentaBolinha(); verificaColisaoBorda(); mostraRaquete(xRaquete, yRaquete); movimentaMinhaRaquete(); verificaColisaoRaquete(xRaquete, yRaquete); mostraRaquete(xRaqueteOponente, yRaqueteOponente); movimentaRaqueteOponente(); verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente); incluiPlacar() marcaPonto() //movimentaRaqueteMultiplayer() bolinhaNaoFicaPresa()
}
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() { rect(xRaquete, yRaquete, raqueteComprimento, raqueteAltura); }
function movimentaMinhaRaquete() { if (keyIsDown(UP_ARROW)) { yRaquete -= 10; } if (keyIsDown(DOWN_ARROW)) { yRaquete += 10; } }
function movimentaRaqueteMultiplayer(){ if (keyIsDown(87)){ yRaqueteOponente -= 10; } if (keyIsDown(83)){ yRaqueteOponente += 10; }
}
function verificaColisaoRaquete(x,y) { colidiu = collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio); if (colidiu) { velocidadeXBolinha *= -1; raquetada.play(); } }
function mostraRaquete(x,y) { rect(x, y, raqueteComprimento, raqueteAltura); }
function movimentaRaqueteOponente(){ velocidadeYOponente = yBolinha -yRaqueteOponente - raqueteComprimento / 2 - 30; yRaqueteOponente += velocidadeYOponente + chanceDeErrar calculaChanceDeErrar() }
function incluiPlacar() { stroke(255); textAlign(CENTER); textSize(16); 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 += 1; ponto.play(); } if (xBolinha < 10) { pontosDoOponente += 1; ponto.play(); } }
function bolinhaNaoFicaPresa(){ if (xBolinha - raio < 0){ XBolinha = 23 } }
function calculaChanceDeErrar() { if (pontosDoOponente >= meusPontos) { chanceDeErrar += 1 if (chanceDeErrar >= 39){ chanceDeErrar = 40 } } else { chanceDeErrar -= 1 if (chanceDeErrar <= 35){ chanceDeErrar = 35 } } }