2
respostas

Após a inserção do código que verifica a colisão o ator não se move mais.

Primeiro escrevi o código seguindo as instruções do professor, vi que não funcionou então verifiquei todo o código e não achei diferença, mas mesmo assim resolvi copiar o código do professor, troquei tudo e ainda sim nada do ator andar. Tentei também trocar o código por um collideRectRect, já que a imagem da vaquinha não é um circulo, e nada também. Meu ator simplesmente não anda. Voltei tudo como estava e vou enviar pra vocês. Não consigo achar o erro.

Queria deixar uma observação: Eu comentei os códigos "verificaColisao()" e "colidiu()" para verificar se os erros estavam contidos aí, o ator se moveu, então deixei comentado somete o código "colidiu()" e o ator de moveu normalmente inclusive voltando a posição yAtor = 366, sem executar a função "colidiu()". Alguma explicação pra esse código estar causando o bug? E como meu ator esta voltando a posição 366 se meu código está comentado? Se eu volto ao normal e "descomento" o código o ator para de se mover novamente.

//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(){
  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;
}
2 respostas

Oi Aluno, compartilhe o seu projeto.

Oi Romeu, tudo bem? Como envio meu projeto?