1
resposta

Meu oponente ou nunca erra ou nunca acerta, dependendo da subtração.

Meu oponente nunca erra a bolinha quando uso a função dessa forma:

function movePaddle1(){
  speedPaddle1 = yBall - yPaddle1 - hPaddle1 / 2 - 50;
  yPaddle1 += speedPaddle1
}

Se eu aumento o valor para "2 - 55", ai ele nunca mais acerta a bolinha.

https://editor.p5js.org/guhcerdeira/full/4nRJiQSaw

function setup() {
  createCanvas(600, 400);
}

//ball variables
let xBall = 300;
let yBall = 200;
let dBall = 15;
let speedXBall = 8;
let speedYBall = 8;
let rayBall = dBall / 2

function showBall(){
  circle (xBall, yBall, dBall)
}

function movementBall(){  
  xBall += speedXBall;
  yBall += speedYBall;
}

//colision variables

function colisionVerify(){
  if (xBall + rayBall > width || xBall - rayBall < 0){
  speedXBall *= -1;
}
if (yBall + rayBall > height || yBall - rayBall < 0) {
  speedYBall *= -1;
}
}

let colision = false

//paddle variables

let xPaddle = 10;
let yPaddle = 150;
let wPaddle = 10;
let hPaddle = 90;

function showPaddle(){
  rect(xPaddle, yPaddle, wPaddle, hPaddle)
}

//opponent paddle variables

let xPaddle1 = 580;
let yPaddle1 = 150;
let wPaddle1 = 10;
let hPaddle1 = 90;
let speedPaddle1;

// game score
let myPoints = 0
let oponentPoints = 0

function showPaddle1(){
  rect(xPaddle1, yPaddle1, wPaddle1, hPaddle1)
}

function movePaddle(){
  if (keyIsDown(UP_ARROW)){
    yPaddle -= 10;
  }
  if (keyIsDown(DOWN_ARROW)){
    yPaddle += 10;
      }
}

function movePaddle1(){
  speedPaddle1 = yBall - yPaddle1 - hPaddle1 / 2 - 50;
  yPaddle1 += speedPaddle1
}

function paddleColisionVerify(){
  if (xBall - rayBall < xPaddle + wPaddle && yBall - rayBall < yPaddle + hPaddle && yBall +  rayBall > yPaddle) {
    speedXBall *= -1;
  }
}

function paddleColisionVerify1(){
  if (xBall + rayBall > xPaddle1 && yBall - rayBall < yPaddle1 + hPaddle1 && yBall +  rayBall > yPaddle1) {
    speedXBall *= -1;
  }
}

function addPoints(){
  fill(255);
  text(myPoints, 278, 26);
  text(oponentPoints, 321, 26);
}

function score(){
  if (xBall > 590){
    myPoints += 1;
  }
  if (xBall < 10){
    oponentPoints += 1;
  }
}

function draw() {
  background(0);
  showBall();
  movementBall();
  colisionVerify();
  showPaddle();
  movePaddle();
  paddleColisionVerify();
  showPaddle1();
  movePaddle1();
  paddleColisionVerify1();
  addPoints();
  score();
  }

1 resposta

Olá, Gustavo! Tudo bom?

Desculpe a demora em responder você!

Essa é uma excelente pergunta e sua resposta está um pouco mais pra frente no curso.

No Para saber mais: Para saber mais sobre o erro do oponente, que está na

  • "aula 5. Editando placar e adicionando sons" > passo 07. Para saber mais Possibilitando o erro da raquete do oponente você encontrará uma forma de dificultar o jogo.

Além disso um aluno aqui da plataforma desenvolveu uma maneira de criar um erro aleatório do oponente: tópico "erro aleatório do oponente"

Espero que tenha ajudado!

Um abraço e bons estudos!