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

A minha colisão não funciona corretamente

//ator
let yator = 364;
let xator = 200;
let colisao = false;

function mostraAtores(){
    image(ator1, xator, yator, 30, 30);
}

function movimentoAtor(){
  if (keyIsDown(UP_ARROW)){
    yator -= 3;
  }
    if (keyIsDown(DOWN_ARROW)){
    yator += 3;
}
}
function verificaColisao(){
  for (let i = 0; i < imgcarro.length; i = i + 1){
    colisao = collideRectCircle(xcarros[i], ycarros[i], comprimento, altura, xator, yator, 30);
    }
      if (colisao){
      colidiu();
      }
  }



function colidiu(){
  yator = 364;
}
let ycarros = [40, 100, 160];
let velocidade = [2, 4, 3];
let xcarros = [600, 600, 600];
let comprimento = 50;
let altura = 30;


function carro11(){
  for (let i = 0; i < imgcarro.length; i = i + 1){
    image(imgcarro[i], xcarros[i], ycarros[i], comprimento, altura);
  }
}  

function movimentoCarro(){
  for (let i = 0; i < imgcarro.length; i = i + 1){
    xcarros[i] -= velocidade[i];
    }
}  
function volta (){
    for (let i = 0; i < imgcarro.length; i = i + 1){
  if (passatela(xcarros[i])){
    xcarros[i] = 600;
  }
  }
}

function passatela (xcarro){
  return xcarro < -50;
}
//imagens do jogo


let ator1;
//estrada
let estrada;
//carro1
let carro1;
//carro2
let carro2;
//carro3
let carro3;

function preload(){
  estrada = loadImage('img/estrada.png');
  ator1 = loadImage('img/ator-1.png');
  carro1 = loadImage('img/carro-1.png');
  carro2 = loadImage('img/carro-2.png');
  carro3 = loadImage('img/carro-3.png');
  imgcarro = [carro1, carro2, carro3]
}
4 respostas
solução!

Olá Tiago, pode ser que seja um problema na indentação do seu código, talvez em alguma instrução if. Espero ter ajudado.

Mudei as imagens e consegui fazer com que a colisão funcionasse, mas só está funcionando em um dos carros.

n sei oq fiz, mas deu certo kkkkkk. mto obrigado pela ajuda!

Por nada, Tiago. Fico feliz em ter ajudado. Bons estudos!