Toda vez que eu executo o jogo, a raquete do oponente aparece acima da borda do jogo, a raquete não fica na mesma posição que a primeira e acaba tendo movimentos limitados a partir do ponto em que se coloca: speedYOpponent = speedpositionballY - positionOpponentracketY - widthracket / 2 - -200
Mas para um contexto maior, aqui está o código do jogo por inteiro: //dimensionOfball let positionballX = 300 let positionballY = 200 let diametro = 15
//controlOfball let speedpositionballX = 6; let speedpositionballY = 6; let raio = diametro / 2
//dimensionOfracket let positionracketX = 5; let positionracketY = 150; let heightracket = 8 let widthracket = 100
//dimensionOfopponentracket let positionOpponentracketX = 585; let positionOpponentracketY = 150; let speedYOpponent;
function setup() { createCanvas(600, 400); }
function draw() { background(0); background(0); showMeball(); movesOfball(); controlOfedge(); showMeracket(positionracketX, positionracketY); showMeracket(positionOpponentracketX, positionOpponentracketY); domoveMyracket(); domoveOpponentracket(); checkcollisionofracket();
} function showMeball(){ circle(positionballX, positionballY, diametro); }
function movesOfball(){ positionballX += speedpositionballX positionballY += speedpositionballY }
function controlOfedge(){ if (positionballX + raio > width || positionballX - raio < 0){ speedpositionballX *= -1; }
if (positionballY + raio > height || positionballY - raio < 0){ speedpositionballY *= -1 } }
function showMeracket(X, Y){ rect(X, Y, heightracket, widthracket) }
function domoveMyracket(){ if (keyIsDown (UP_ARROW)){ positionracketY -= 10; } if (keyIsDown (DOWN_ARROW)){ positionracketY += 10; } }
function domoveOpponentracket(){ speedYOpponent = speedpositionballY - positionOpponentracketY - widthracket / 2 - -200 positionOpponentracketY += speedYOpponent; }
function checkcollisionofracket(){ if ( positionballX - raio < positionracketX + heightracket && // colisão à esquerda da raquete positionballX + raio > positionracketX && // colisão à direita da raquete positionballY - raio < positionracketY + widthracket && // colisão acima da raquete positionballY + raio > positionracketY // colisão abaixo da raquete ) { speedpositionballX *= -1; } }