Pessoal logo após terminar de escrever os códigos do jogo tive 2 problemas; 1- depois que adicionei os sons o jogo ficou cada vez mais lento e travando depois de 3 raquetadas, mas o erro não é acusado, sendo somento descrito como "undefined" 2 - quando adicionei a parte de "chanceDeErrar" a raquete do oponente simplesmente desapareceu.
segue o código completo:
function setup() { createCanvas(800, 600); trilha.loop() }
function draw() { background(0); dimensoesBolinha(); movimentoBolinha(); colisaoBordas(); dimensoesRaquete(xRaquete, yRaquete); dimensoesRaquete(xOponente, yOponente); colisaoRaquetesBiblioteca(xRaquete, yRaquete) colisaoRaquetesBiblioteca(xOponente, yOponente) movimentoRaquete(); movimentoOponente(); placar(); marcarPontos(); preload(); calculaChanceDeErrar();
}
function calculaChanceDeErrar(){ if (pontos2 >= pontos1) { chanceDeErrar += 1 if (chanceDeErrar >= 39){ chanceDeErrar = 40 } } else { chanceDeErrar -= 1 if (chanceDeErrar <= 35){ chanceDeErrar = 35 } } }
function preload (){ ponto = loadSound ("ponto.mp3"); trilha = loadSound ("trilha.mp3"); raquetada = loadSound ("raquetada.mp3"); }
function movimentoRaquete(x, y){ if (keyIsDown (DOWN_ARROW)) {yRaquete += 10} if (keyIsDown (UP_ARROW)) {yRaquete -= 10}
}
function colisaoRaquetesBiblioteca(x, y){ colidiu = collideRectCircle(x, y, espessuraRaquete, comprimentoRaquete, xBolinha, yBolinha, raio); if (colidiu){velocidadeX *= -1 raquetada.play() }
}
function dimensoesRaquete(x, y){ rect (x,y,espessuraRaquete, comprimentoRaquete); }
function dimensoesOponente(){ rect (xOponente,yOponente,espessuraRaquete, cumprimentoRaquete); }
function dimensoesBolinha (){
circle (xBolinha, yBolinha, diametroBolinha); }
function movimentoBolinha(){ yBolinha += velocidadeY; xBolinha += velocidadeX; }
function colisaoBordas(){ if (xBolinha + raio > width ||xBolinha - raio < 0 ) {velocidadeX *= -1}
if (yBolinha + raio > height|| yBolinha < 0){velocidadeY *=-1}
}
function movimentoOponente(){ velocidadeYOponente = yBolinha - yOponente - comprimentoRaquete / 2 -30 yOponente += velocidadeYOponente + chanceDeErrar calculaChanceDeErrar(); }
function placar (){
fill (255,165,0); stroke (255); rect (580, 3, 40, 20); rect (180, 3, 40, 20);fill (255); textSize (20); textAlign (CENTER);text (pontos1, 200, 20); text (pontos2, 600, 20);
}
function marcarPontos(){ if (xBolinha > 785){ pontos1 += 1 ponto.play()} if (xBolinha < 15){ pontos2 += 1 ponto.play()}
}
//variaveisBolinha xBolinha = 400; yBolinha = 300; diametroBolinha = 25; raio = diametroBolinha/2; velocidadeX = 6; velocidadeY = 6;
//variaveisRaquete xRaquete = 5; yRaquete = 300; espessuraRaquete = 10; comprimentoRaquete = 120;
//variaveisOponente let xOponente = 785; let yOponente = 250; let velocidadeOponente; let chanceDeErrar;
//outras variaveis let colidiu = false; let pontos1 = 0; let pontos2 = 0;
//sons let ponto; let trilha; let raquetada;