o jogo funciona como deveria, mas meu oponente não perde uma só bolinha! desanima jogar contra uma máquina infalível, não dá senso de desafio.. e tem ainda um bug que é o fato de a bolinha às vezes ficar presa entre a raquete e a borda, o que pontua muito pro adversário! me deram a sugestão de mandar a bolinha pro centro da tela sempre que pontuar para eliminar esse bug, mas achei que afetou demais a experiência do jogo.. alguém tem outra ideia de como mudar isso?
//tamanhos e medidas
//bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 22; let raio = diametro / 2;
//raquetes let alturaRaquetes = 70; let larguraRaquetes = 10; let xRaqueteEsquerda = 10; let yRaqueteEsquerda = 162; let xRaqueteDireita = 580; let yRaqueteDireita = 162;
//movimento
//bolinha let velocidadeXbolinha = 6; let velocidadeYbolinha = 6;
//raquetes let velocidadeYraqueteDireita;
//placar let pontosEsquerda = 0; let pontosDireita = 0;
function setup() { createCanvas(600, 400); }
function draw() { background(0); mostraBolinha(); mostraRaquetes(); moveBolinha(); moveRaqueteEsquerda(); moveRaqueteDireita(); verificaColisaoRaquete(xRaqueteEsquerda, yRaqueteEsquerda); verificaColisaoRaquete(xRaqueteDireita, yRaqueteDireita); mostraPlacar(); marcaPonto(); }
function mostraBolinha(){ circle(xBolinha,yBolinha,diametro); }
function mostraRaquetes(){ rect(xRaqueteEsquerda, yRaqueteEsquerda, larguraRaquetes, alturaRaquetes); rect(xRaqueteDireita, yRaqueteDireita, larguraRaquetes, alturaRaquetes);}
function moveBolinha(){ xBolinha += velocidadeXbolinha; yBolinha += velocidadeYbolinha;
if (xBolinha + raio > width || xBolinha - raio < 0 ){ velocidadeXbolinha *= -1; }
if (yBolinha + raio > height || yBolinha - raio <0){ velocidadeYbolinha *= -1; } }
function moveRaqueteEsquerda(){ if (keyIsDown(87)){ //TECLA W yRaqueteEsquerda -= 10; } if (keyIsDown(83)){ //TECLA S yRaqueteEsquerda += 10; } if (yRaqueteEsquerda < 0){ yRaqueteEsquerda = 0; } if (yRaqueteEsquerda > height - alturaRaquetes){ yRaqueteEsquerda = height - alturaRaquetes; } }
function moveRaqueteDireita(){ /if (keyIsDown(UP_ARROW)){ yRaqueteDireita -= 10; } if (keyIsDown(DOWN_ARROW)){ yRaqueteDireita += 10; }/
velocidadeYraqueteDireita = yBolinha - yRaqueteDireita - alturaRaquetes / 2 - 30; yRaqueteDireita += velocidadeYraqueteDireita
//yRaqueteDireita = yBolinha - 80; if (yRaqueteDireita < 0){ yRaqueteDireita = 0; } if (yRaqueteDireita > height - alturaRaquetes){ yRaqueteDireita = height - alturaRaquetes; } }
function verificaColisaoRaquete(x, y){ colidiu = collideRectCircle(x, y, larguraRaquetes, alturaRaquetes, xBolinha, yBolinha, raio); if (colidiu){ velocidadeXbolinha *= -1; } }
function mostraPlacar(){ fill(255); text(pontosEsquerda, 250, 30); text(pontosDireita, 340, 30);
}
function marcaPonto(){ if (xBolinha > 590){ pontosEsquerda += 1; } if (xBolinha < 10){ pontosDireita +=1; }
}