1
resposta

[Bug] Carros não colidem

Se eu uso print ("Colidiu) aparece no console, mas depois de tentar colocar a função não está dando certo. Segue os códigos:

//Sketch:

function draw() {
  background(imageRoad); 
  showActor();
  showCars();
  moveCars();
  moveActor();
  comebackCar();
  comebackActor();
  verifyColisao();
  colidiu ();

}


function setup() {
createCanvas(500, 400);
}

//Ator

let xActor=100;
let yActor =366;

function showActor(){
    image (imageActor, xActor, yActor, 30,30);
}

function moveActor(){
    if (keyIsDown(UP_ARROW)){
        yActor -= 2;
    }
    if (keyIsDown(DOWN_ARROW)){
        yActor +=2;
    }
   }
function comebackActor(){
     if (yActor < -40){
        yActor = 400  } 
       }


function verifyColisao(){
  //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
  for (let i = 0; i < imageCars.length; i++){
    colisao = collideRectCircle(xCars[i], yCars[i], 50, 40, xActor, yActor, 15)
    if (colisao){
      colidiu();
    }
  }
}

function colidiu(){
  yAtor = 366;
}

*Já peço desculpas por misturar o inglês e o portguês no código, mas eu costumo fazer em inglês e eu não lembrava como dizia colisão haha

1 resposta

Boa tarde Heloísa Santos , Acredito que a função colidiu deve se executada somente nessa parte do código

function verifyColisao(){
  //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
  for (let i = 0; i < imageCars.length; i++){
    colisao = collideRectCircle(xCars[i], yCars[i], 50, 40, xActor, yActor, 15)
    if (colisao){
      colidiu();
    }
  }
} 

nessa parte abaixo não seria necessário chamar a função colidiu, apaga a função colidiu (); do Sketch e testa.

function draw() {
  background(imageRoad); 
  showActor();
  showCars();
  moveCars();
  moveActor();
  comebackCar();
  comebackActor();
  verifyColisao();
  colidiu ();
}
function setup() {
createCanvas(500, 400);
}