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

Uncaught ReferenceError: backPositionInitialCar is not defined (sketch: line 12)

Pessoal, já busquei em todo o meu código o que pode ser esse erro, mas não encontrei. Alguém consegue ajudar ?

//car code

let xCars = [600, 600, 600];
let yCars = [40, 96, 150];
let speedCars = [2, 2.5, 3];

function showCar(){
  for (let i = 0; i < carImgs.length; i = i + 1){
    image(carImgs[i], xCars[i], yCars[i], 50, 40)
    }
}

function moveCar(){
  for (let i = 0; i < carImgs.length; i = i+ 1){
    xCars[i] -= speedCars[i];
  }
}

function backPositionInitialCar(){
  for (let i = 0; i > carImgs.length; i = i+1){
    if (passedAllScreen(xCars[i])){
          xCars[i] = 600;
    }
  }
}

function passedAllScreen(xCar){
  return xCars[0] < -50;
}


// sketch

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

function draw() {
  background(highwayImg);
  showActor();
  showCar();
  moveCar();
  moveActor();
  backPositionInitialCar()
}

//code imgs

let highwayImg; 
let actorImg;
let carImg;
let carImg2;
let carImg3;

function preload() {
  highwayImg = loadImage("img/estrada.png");
  actorImg = loadImage("img/ator-1.png");
  carImg = loadImage("img/carro-1.png");
  carImg2 = loadImage("img/carro-2.png");
  carImg3 = loadImage("img/carro-3.png");
  carImgs = [carImg, carImg2, carImg3];
}
5 respostas

Olá ​Maharishi! Tudo bem? Seria bom tu deixar o link de seu projeto aqui, pra facilitar a análise de onde está o erro.

Olá, Marcos!

https://editor.p5js.org/MaharishiM/sketches/oQi-qKNwH

Segue o link.

Obrigado pela contribuição.

solução!

Olá ​Maharishi! De nada! Esta tudo bem? Bom eu achei o seu erro e agora ta funcionando direitinho depois que tu fizer as alterações aí. Primeiro no arquivo "index.html" estava escrito errado o nome p5collide.js ao invés de estar assim corretamente com o "ponto" p5.collide.js.

E também havia um erro no nome car.js ao invés de estar assim corretamente com a letra "s" cars.js.

Logo abaixo o código completo da forma correta pra você comparar e alterar no seu código.

<script src="cars.js"></script>
<script src="p5.collide2d.js"></script>

Já os outros erros era no arquivo "actor.js", onde havia um erro na função "verifyCollide()". Que estava assim conforme o código abaixo .

Lembrando que o erro era onde estava escrito "llide" ao invés de ter o número "15" e faltava o fechamento do parênteses depois desse número "15" e a condição "if", deveria estar na linha de baixo. Pois ela estava na linha de cima.

function verifyCollide(){
  //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
  for (let i = 0; i < carImgs.length; i = i + 1){
    collide = collideRectCircle(xCars[i], yCars[i], widthCar, heightCar, xActor, yActor,    llide if (collide){
      collided();
    }
  }
}

Sendo que a forma correta é essa do código abaixo:

function verifyCollide(){
  //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
  for (let i = 0; i < carImgs.length; i = i + 1){
    collide = collideRectCircle(xCars[i], yCars[i], widthCar, heightCar, xActor, yActor, 15) 
    if (collide){
      collided();
    }
  }
}

Aqui vou deixar todos os códigos completos e corrigidos de cada arquivo

Lembrando que acho que você ainda a essa altura, não tinha concluído todo o curso. Por isso que as alterações no seu código, foi de somente até aonde você estava no momento. Peço desculpa caso esteja faltando os códigos restante que completa a aula.

Segue abaixo os códigos completos de cada arquivo pra comparar com o seu, caso ainda tenha dúvidas

actor.js

//actor code
let xActor = 100
let yActor = 366
let collide = false

function showActor(){
  image(actorImg, xActor, yActor, 30, 30)
}

function moveActor(){
  if (keyIsDown(UP_ARROW)){
    yActor -= 3;
  }
   if (keyIsDown(DOWN_ARROW)){
    yActor += 3;
  }
}

function verifyCollide(){
  //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
  for (let i = 0; i < carImgs.length; i = i + 1){
    collide = collideRectCircle(xCars[i], yCars[i], widthCar, heightCar, xActor, yActor, 15) 
    if (collide){
      collided();
    }
  }
}

function collided(){
  yActor = 366;
}

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.2.0/p5.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.2.0/addons/p5.sound.min.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css">
    <meta charset="utf-8" />

  </head>
  <body>
    <script src="sketch.js"></script>
    <script src="imgs.js"></script>
    <script src="actor.js"></script>
    <script src="cars.js"></script>
    <script src="p5.collide2d.js"></script>
  </body>
</html>

Obrigado, Marcos!

Era isso mesmo, agora funcionou por aqui. Contribuição monstra!

Por nada, que isso, ​Maharishi! Eu que agradeço! Precisando, estamos as ordens.