O jogo roda liso. Fiz me baseando em muito na aula do Guilherme, porém ao inserir o comando da raquetada do jogador2, o jogo trava. Segue o código.
//variaveis bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 20 let raio = diametro / 2; let velocidade = 5 let velocidadeXBolinha = velocidade; let velocidadeYBolinha = velocidade;
//variaveis raqueteP1 let xRaqueteP1 = 5 let yRaqueteP1 = 160 let comprimentoRaqueteP1 = 10 let alturaRaqueteP1 = 80
//variaveis raqueteP2 let xRaqueteP2 = 585; let yRaqueteP2 = 150; let comprimentoRaqueteP2 = 10; let alturaRaqueteP2 = 80; let velocidadeYP2;
//placar do jogo let pontosP1 = 0; let pontosP2 = 0;
//sons do jogo let raquetada; let ponto; let trilha;
function setup() { createCanvas(600, 400); trilha.loop(); } function preload(){ trilha = loadSound("trilha.mp3"); ponto = loadSound("ponto.mp3"); raquetada = loadSound("raquetada.mp3"); } function mostraBolinha(){ circle(xBolinha, yBolinha, diametro); } function movimentoBolinha(){ xBolinha += velocidadeXBolinha; yBolinha += velocidadeYBolinha; } function colisaoBorda(){ if(xBolinha + raio > width || xBolinha - raio < 0){ velocidadeXBolinha *= -1; } if(yBolinha + raio > height || yBolinha - raio < 0){ velocidadeYBolinha *= -1; } } function raqueteP1(){ rect(xRaqueteP1, yRaqueteP1, comprimentoRaqueteP1, alturaRaqueteP1); } function raqueteP2(){ rect(xRaqueteP2, yRaqueteP2, comprimentoRaqueteP2, alturaRaqueteP2); } function movimentoRaqueteP1() { if (keyIsDown(UP_ARROW)) { yRaqueteP1 -= 10; } if (keyIsDown(DOWN_ARROW)) { yRaqueteP1 += 10; } }3 function movimentoRaqueteP2(){ velocidadeYP2 = yBolinha - yRaqueteP2 - comprimentoRaqueteP2 /2 - 60; yRaqueteP2 += velocidadeYP2; } function colisaoRaqueteP1() { if (xBolinha - raio < xRaqueteP1 + comprimentoRaqueteP1 && yBolinha - raio < yRaqueteP1 + alturaRaqueteP1 && yBolinha - raio > yRaqueteP1){ velocidadeXBolinha *= -1; raquetada.play(); } } function colisaoRaqueteP2() { if (xBolinha + raio > xRaqueteP2 + comprimentoRaqueteP2 && yBolinha + raio < yRaqueteP2 + alturaRaqueteP2 && yBolinha + raio > yRaqueteP2){ velocidadeXBolinha *= -1; raquetada.play(); } } function placar(){ stroke(255); textAlign(CENTER); textSize(16); fill(color(255, 140, 0)); rect(150, 10, 40, 20); fill(255); text(pontosP1, 170, 26); fill(color(255, 140, 0)); rect(450, 10, 40, 20); fill(255); text(pontosP2, 470, 26); } function pontua(){ if(xBolinha > 590){ pontosP1 += 1; } if(xBolinha < 10) { pontosP2 += 1; } }
function draw() { background(0); preload(); mostraBolinha(); movimentoBolinha(); colisaoBorda(); raqueteP1(); raqueteP2(); movimentoRaqueteP1(); colisaoRaqueteP1(); movimentoRaqueteP2(); colisaoRaqueteP2(); placar(); pontua(); }