1
resposta

[Projeto] Reformei o código de colisão no Ator para ser mais preciso!

O código abaixo tem mais precisão em verificar se o Ator tocou ou não nos Carros usando a repitição for igual no curso.

// Variáveis do Ator
let xAtor = 100;
let yAtor = 366;
let colisao = false;

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

function movimentaAtor() {
  // Movimenta pra cima
  if (keyIsDown(UP_ARROW)) {
    yAtor -= 3;
  }
  // Movimenta pra baixo
  if (keyIsDown(DOWN_ARROW)) {
    yAtor += 3;
  }
}

// Código de Verificação de Colisão com os Carros Melhorada
function verificaColisao() {
  for (let idx = 0; idx < imagemCarros.length; idx += 1){
    colisao = collideRectCircle(xCarros[idx]-15, yCarros[idx]-15, 50, 40, xAtor, yAtor, 15)
    if (colisao) {
      yAtor = 366;
    }
  }
}

Troque todos os idx caso você use igual no curso por i, igual o que está no curso.

1 resposta

Olá, Rafael.

Tudo bem?

Pelo que entendi, você fez uma alteração no código de colisão do Ator para torná-lo mais preciso, utilizando um laço de repetição "for". Aparentemente, a sua lógica parece estar correta.

No seu código, você está percorrendo o array de carros (imagemCarros) e verificando se houve colisão entre o ator e cada carro. Se houver colisão, você está resetando a posição do ator (yAtor = 366), o que parece ser a ação desejada.

Parabéns pela mudança e por querer melhorar o código, isso vai melhorar ainda mais a sua capacidade de resolver problemas.

Bons estudos!