Segui o passo a passo como na aula, com algumas pequenas alterações para deixar mais fácil para o meu entendimento. O único problema é que de vez em quando a bolinha parece entrar nas paredes laterais atrás das raquetes e ficam marcando pontos infinitos. Ocasionalmente, ela acaba retornando, porém deixa o placar absurdo.
//Variáveis da Bolinha
var xBolinha = 300;
var yBolinha = 200;
var bolinha = 30;
var raio = 15;
//Velocidade da Bolinha
var velocidadeXBolinha = 8;
var velocidadeYBolinha = 8;
//Raquete do Jogador 1
var larguraRaquete = 12;
var alturaRaquete = 100;
var xRaqueteJogador1 = 0;
var yRaqueteJogador1 = 150;
//Raquete do Jogador 2/Oponente
var larguraRaquete2 = 12;
var alturaRaquete2 = 100;
var xRaqueteJogador2 = 588;
var yRaqueteJogador2 = 150;
var velocidadeJogador2;
//Placar do Jogo
var pontosJogador1 = 0;
var pontosJogador2 = 0;
function setup() {
createCanvas(600, 400);
}
function draw() {
background(000);
mostraBolinha();
movimentaBolinha();
verificaColisao();
raqueteJogador1();
raqueteJogador2();
movimentaRaquete1();
verificaColisaoRaquete1();
verificaColisaoRaquete2();
movimentaRaquete2();
incluiPlacar();
marcaPonto();
}
function mostraBolinha(){
circle(xBolinha,yBolinha,bolinha);
}
function movimentaBolinha(){
xBolinha += velocidadeXBolinha;
yBolinha += velocidadeYBolinha;
}
function verificaColisao(){
if (xBolinha > (600 - raio) || xBolinha < (0 + raio)) {
velocidadeXBolinha *= -1;
}
if (yBolinha > (height - raio) || yBolinha < (0 + raio)) {
velocidadeYBolinha *= -1;
}
}
function raqueteJogador1(){
rect(xRaqueteJogador1,yRaqueteJogador1,larguraRaquete,
alturaRaquete);
}
function raqueteJogador2(){
rect(xRaqueteJogador2,yRaqueteJogador2,larguraRaquete2,
alturaRaquete2);
}
function movimentaRaquete1(){
if(keyIsDown(UP_ARROW)) {
yRaqueteJogador1 -= 10;
}
if(keyIsDown(DOWN_ARROW)) {
yRaqueteJogador1 += 10;
}
}
function verificaColisaoRaquete1(){
if(xBolinha - raio < xRaqueteJogador1 + larguraRaquete &&
yBolinha - raio < yRaqueteJogador1 + alturaRaquete && yBolinha + raio > yRaqueteJogador1 ) {
velocidadeXBolinha *= -1
}
}
function verificaColisaoRaquete2(){
if(xBolinha + raio > xRaqueteJogador2 && yBolinha -
raio > yRaqueteJogador2 && yBolinha + raio < yRaqueteJogador2 + alturaRaquete2 ) {
velocidadeXBolinha *= -1
}
}
function movimentaRaquete2(){
velocidadeJogador2 = yBolinha - yRaqueteJogador2 - yRaqueteJogador2 / 1.3;
yRaqueteJogador2 += velocidadeJogador2;
}
function incluiPlacar(){
fill(255);
text(pontosJogador1,278,26);
text(pontosJogador2,321,26);
}
function marcaPonto(){
if(xBolinha > 599 - raio){
pontosJogador1 += 1;
}
if(xBolinha <1 + raio){
pontosJogador2 += 1;
}
}