2
respostas

Raquete do oponente está acima da borda do jogo

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; } }

2 respostas

Olá João, Dentro das boas práticas, ficaria mais fácil para perceber o código se vc usar a recomendação dos instrutores:

CamelCase é a denominação em inglês para a prática de escrever as palavras compostas: lowerCamelCase (de letra inicial minúscula)

Agora, o que está a causar problema no seu código, está na imagem. Na próxima vez que postar um código, pediria com muita gentileza, que use o comando da barra de formatação " </>" , fica mais fácil pra visualizar. Boa sorte meu caro!!

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; 
  }     
}

Muito obrigado, você é o cara!