Meu jogo está com conseguinte bug como mostra na gif abaixo:
Só acontece na parte de cima de ambos raquetes, como posso revolver?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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 } } }