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

Não ocorre colisão e ator não volta para posição

Se alguém puder ajudar, agradeço.

//código do ator

let = xAtor = 100;
let = yAtor = 366;
let colisao = false;

function mostraAtor(){
image(imagemDoAtor, xAtor, yAtor, 30, 30); 
}

function movimentaAtor(){
  if(keyIsDown(UP_ARROW)){
  yAtor -= 3;
  }
  if(keyIsDown(DOWN_ARROW)){
  yAtor += 3; 
  }
}

function verificaColisao(){
 //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter) 
  for (let i = 0; i < imagemCarros.length; i = 1 + 1 );{
    colisao = collideRectCircle (xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 15)
    if(colisao){
    colidiu()
       }
     }
   }

function colidiu(){
  yAtor = 366
}

Segue o link: "https://editor.p5js.org/regi.assuncao9/sketches/30JrN5jlR"

2 respostas

Fala Reginaldo, acho que o ponto e virgula depois do seu "for" esta bugando seu codigo.

for (let i = 0; i < imagemCarros.length; i = 1 + 1 )**;**{

solução!

E ai, Reginaldo, beleza?

Cara, além do ponto e vírgula que o Felipe mencionou, tu colocou também i = 1 + 1 e deveria ser i = i + 1. Outra coisinha também é que lá no index.html tu esqueceu de colocar:

    <script src="p5.collide2d.js"></script>

Por isso que ele não tava reconhecendo a colisão do ator com o carro.

E sobre o ator não voltar para a posição inicial, acho que deve ser porque tu esqueceu de declarar lá em carro.js as variáveis:

let comprimentoCarro = 50;
let alturaCarro = 40;

Deu pra entender? Espero ter ajudado. Abraço.

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