1
resposta

Outro jeito...

Antes de ver como o professor fez na aula, eu me aventurei e criei meu próprio jeito de resolver esse problema da colisão sem utilizar a biblioteca, para praticar a lógica.

Ficou legal? no que da pra melhorar?

Valeu! =)

function collide() {  

  for(var i = 0; i < carsPicture.length; i++) {


 if(xCars[i] < xPlayer1 + playerWidth1
       && yCars[i] + carsHeight > yPlayer1
       && yCars[i] < yPlayer1 + playerHeight1
       && xCars[i] + carsWidth > xPlayer1) {

      yPlayer1 = 366;

    }
  }
}
1 resposta

Fala, Jefferson. Tudo bem contigo?

Ficou bacana, hein!

Percebi que sua lógica deixou mais enxuto, pois na aula foram criadas algumas funções isoladas para implementá-las dentro da colisão

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

function colidiu(){
  yAtor = 366;
}

Agora, pode ser que deixar enxuto pode obrigar a criar funções futuramente dependendo da necessidade. Vale a reflexão!

Mas é isso aí!

Parabéns pela lógica!

Um abraço e bons estudos!!!

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