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

A minha bolinha fica caindo no limbo

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

//velocidade da bolinha
let velocidadeXBolinha = 6;
let velocidadeYBolinha = 6;

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

function draw() {
    background(0);
    mostraBolinha();
    movimentaBolinha();
   verificaColisaoBorda();
 }

function mostraBolinha(){
  circle(xBolinha, yBolinha, diametro);
}

function movimentaBolinha(){
  xBolinha += velocidadeXBolinha;
    yBolinha += velocidadeYBolinha;
}

function verificaColisaoBorda(){

}
2 respostas
solução!

Oi, Natan! Tudo bem?

Para a bolinha reconhecer as bordas do nosso jogo e movimentar-se apenas entre essas extremidades, precisamos colocar os seguintes comandos dentro da função verificaColisaoBorda, responsável por verifica a colisão entre a bolinha e as bordas do jogo:

function verificaColisaoBorda(){
  if (xBolinha + raio> width ||
     xBolinha - raio< 0){
    velocidadeXBolinha *= -1;
  }
  if (yBolinha + raio> height ||
     yBolinha - raio < 0){
    velocidadeYBolinha *= -1;
  }
}

Dessa forma, avaliando o eixo x dos nossos atores, se a posição da extremidade direita da bolinha for maior que o valor da largura da tela (extremidade direita da tela) e se a posição da extremidade esquerda da bolinha for menor que 0 (extremidade esquerda da tela), então, a bolinha não ultrapassará essa posição, pois irá inverter o seu sentido, multiplicando a velocidadeXBolinha por -1.

Algo semelhante acontece avaliando o eixo y, se a posição da extremidade inferior da bolinha for maior que o valor da altura da tela (extremidade inferior da tela) e se a posição da extremidade superior da bolinha for menor que 0 (extremidade superior da tela), então, a bolinha não ultrapassará essa posição, pois irá inverter o seu sentido, multiplicando a velocidadeYBolinha por -1.

Espero ter ajudado! Qualquer dúvida se sinta à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

obrigado