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

Porque nas funções de colisão usamos "<" e ">" ao invés de "="?

Porque nas funções que verificam o toque (ou "colisão") usa "<" e ">" ao invés de "=" ? Pois a virada deveria ocorrer exatamente no momento do contato, certo? Tentei colocar "=" ao invés de "<" e ">" e recebi o erro "bad assignment"

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

Oi Israel, esse <" e "> está explícito no código? Se sim, onde? Não consegui entender. Lembre-se que, utilizando "=" você está atribuindo um valor a algo, por exemplo um valor a alguma variável como ocorre em < velocidadeXBolinha = -1; > . Caso você queira comparar a algo, deve-se utilizar o atributo de comparação como "==", ou seja, se alguma coisa é igual ou equivalente a outra coisa. Já o || quer dizer o operador OU.

solução!

Oi Israel!

Para fazer a comparação, você precisa usar ==.

O = é para atribuir um valor a uma variável, por isso o erro de "bad assignment"

Eu não vi o código original, mas o motivo de usar > ao invés do == pode ser porque, se a bolinha estiver muito rápida, o contato pode não ser exatamente quando for o valor de xBolinha + raio for igual a width, aí não vai entrar no if. Se usar o > você não tem esse problema.