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

Colisão bolinha.

Fala pessoal, tudo tranquilo? Espero que sim ! Então, estou com uma dúvida. Eu fiz a condição if um pouquinho diferente e gostaria de ver com vocês se pode ser usado dessa maneira. No function verificaColisaoBorda() Eu deixei de usar o width e o height, alterei e fui direto dando os valores subtraído pelo raio. Parece que deu certo.

let xBolinha = 332.5;
let yBolinha = 250;
let diametroBolinha = 30; //Raio = 15;
let velocidadeXBolinha = 2;
let velocidadeYBolinha = 2;


function setup() {
  createCanvas(665, 500);//Dimensão X e Y
}

function draw() {
  background(1);
  circle(xBolinha, yBolinha, diametroBolinha);
  movimentaBolinha();
  verificaColisaoBorda();
}

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

function verificaColisaoBorda()  {
  if(xBolinha > 650 || xBolinha < 15)  {
    velocidadeXBolinha *= -1;
  }
  if(yBolinha > 485 || yBolinha < 15)  {
    velocidadeYBolinha *= -1;
  }
} 
2 respostas
solução!

Olá Antônio, Tudo bom?

Pelo que vi a logica do código vai estar correto mesmo, acho que o uso do width e o height foi usado pelo professor na aula pelo fato de que é possível mudar o tamanho do nosso cenário sem precisar fazer alteração do código da função verificaColisaoBorda().

Abraços, Daniel!!

É interessante como a lógica de cada um funciona. Eu tinha feito essa parte do código antes do professor e ficou diferente do seu e do dele. Eu tinha feito assim;

function colisaoBorda() {
  if(xBolinha > width - 10 || xBolinha < 10) {
    veloXBolinha *= -1;
  }

  if(yBolinha > height - 10 || yBolinha <  10) {
    veloYBolinha *= -1;
  }
}

Mas resolvi mudar, porque mesmo funcionando a lógica estava difícil até pra mim entender kkkk, mesmo entendendo agora.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software