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

[Bug] p5.js - Pong Game - Bolinha está bugada

Fiz o código assim como ensinado no curso, o jogo funciona, porém com um bug na bolinha. Sempre que ela toca na borda superior, ela vai em direção a borda direita... ela nunca vai em direção a borda esquerda e por conta disso, nunca chega até a raquete que foi criada pro usuário utilizar.

Alguém poderia me ajudar a encontrar uma solução para esse bug?

//variáveis relacionadas a bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 15;
let raio = diametro / 2;

//variáveis relacionadas a velocidade da bolinha
let velocidadeXbolinha = 6;
let velocidadeYbolinha = 6;

//variáveis relacionadas a raquete
let xRaquete = 5;
let yRaquete = 150;
let raqueteComprimento = 10;
let raqueeAltura = 90;


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

//Executa visualmente as variáveis
function draw()

  {  
    background(0);
    mostrabolinha();
    movimentabolinha();
    colisaoborda();
    mostraraquete();
    movimentaraquete1();
    colisaoraquete();
  }

//cria a bolinha
function mostrabolinha()
  {  
    circle(xBolinha, yBolinha, diametro);
  }

//cria o movimento da bolinha
function movimentabolinha()
  {
    xBolinha += velocidadeXbolinha;
    yBolinha += velocidadeYbolinha;
  }

//cria a colisão com a borda
function colisaoborda()
{
    if (
        xBolinha + raio > width ||
        yBolinha - raio < 0
       ) {velocidadeXbolinha *= -1;}

    if (
        yBolinha + raio > height ||
        yBolinha - raio < 0
       ) {velocidadeYbolinha *= -1;}
  }

//cria a bolinha
function mostraraquete()
  {
    rect(xRaquete, yRaquete, raqueteComprimento, raqueeAltura);
  }

//cria o movimento da raquete
function movimentaraquete1()
  {
    if (keyIsDown(UP_ARROW))
        {
          yRaquete -= 10;
        }
    if (keyIsDown(DOWN_ARROW))
        {
          yRaquete += 10;
        }
  }

//cria a colisão com a raquete
function colisaoraquete()
  {
    if (
        xBolinha - raio < xRaquete + raqueteComprimento && yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete
       )
          {
            velocidadeXbolinha *= -1;
          }
  }
2 respostas
solução!

Buenas! voce escreveu yBolinha - raio, em vezde xBolinha -raio no primeiro IF da function colisaoborda.

 function colisaoborda()
{
    if (
        xBolinha + raio > width ||
       ** yBolinha - raio < 0**
       ) {velocidadeXbolinha *= -1;}

    if (
        yBolinha + raio > height ||
        yBolinha - raio < 0
       ) {velocidadeYbolinha *= -1;}
  }

Abs!

Nossa, é verdade não tinha reparado. Muito obrigada Luciano, deu certo :)