1
resposta

Problema na linha da height

let xbolinha = 30; let ybolinha = 40; let diametro = 30; let raio = diametro / 2;

let velocidadexbolinha = 3; let velocidadeybolinha = 3;

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

function draw() { background(2); mostrabolinha(); movimentabolinha() ; verificacolisaoborda();

}

function mostrabolinha(){ circle (xbolinha,ybolinha,diametro);

}

function movimentabolinha(){ xbolinha += velocidadexbolinha ; // ybolinha += velocidadeybolinha ;

}

function verificacolisaoborda(){ if (xbolinha + raio > width || xbolinha - raio <0){ velocidadexbolinha *= -1; }

}

if (ybolinha + raio> height || ybolinha - raio <0) { velocidadeybolinha *= -1;

}

Na parte do código "if(ybolinha + raio> height ||'' esta dando erro na execução. O que poderia ser e eu n estou vendo? Funcinou a partir do momento que coloquei o comentario na y

1 resposta

Olá Eduardo, tudo bem?

Pelo que entendi do seu código, o problema está na verificação de colisão com a borda inferior da tela. O erro ocorre porque o if que verifica a colisão com a borda inferior está fora da função verificacolisaoborda() e, por isso, não está sendo executado corretamente. Para corrigir o problema, basta mover o if para dentro da função verificacolisaoborda(), assim:

function verificacolisaoborda() {
  if (xbolinha + raio > width || xbolinha - raio < 0) {
    velocidadexbolinha *= -1;
  }

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

Dessa forma, a verificação de colisão com a borda inferior será executada corretamente. Espero ter ajudado e bons estudos!