Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Colisão com as bordas

Ball reconhece height and width, porém corre apenas na diagonal

let xBall = 200;
let yBall = 200;
let diameter = 17;
let velocityXBall = 4;
let velocityYBall = 4;


function setup() {
  createCanvas(500, 500);
}

function draw() {
  background(0);
  circle (xBall, yBall, diameter);
  xBall += velocityXBall;
  yBall += velocityYBall;

  if (xBall > width || xBall < 0){
    velocityXBall *= -1;

    } 

    if (yBall > height || yBall < 0){
    velocityYBall *= -1;

  }
}
2 respostas

Alterei os valores de x e y e deu certo. Mas não entendi pq o código acima não funcionou se está igual ao do professor. Acho que pode ser edção dos valores do setup. Segue código editado:

let xBall = 200;
let yBall = 200;
let diameter = 17;
let velocityXBall = 10;
let velocityYBall = 10;


function setup() {
  createCanvas(500, 500);
}

function draw() {
  background(0);
  circle (xBall, yBall, diameter);
  xBall += velocityXBall;
  yBall += velocityYBall;

  if (xBall > width || xBall < -12){
    velocityXBall *= -1;

} 

if (yBall > height || yBall < 12){
    velocityYBall *= -1;

  }
}
solução!

Olá, Leonardo! Tudo bom?

Realmente, você matou a charada!

Os valores de colisão correspondem de fato a área desenvolvida no setup, que são as configurações iniciais do projeto. Portanto você precisará ajustar alguns valores para que o comportamento do jogo funcione adequadamente.

Parabéns!

Um abraço e bons estudos!