7
respostas

[Dúvida] A função "movimentaCarro" não funciona, mas não acusa erro, alguém pode me ajudar?

//Imagens
let imagemDaEstrada;
let imagemDoAtor;
let imagemCarro1;
let imagemCarro2;
let ImagemCarro3;

//Variaveis do carro
let xCarro1 = 400;
let yCarro1 = 40;

//Variaveis do Ator
let xAtor = 100;
let yAtor = 366;  

function preload(){
  imagemDaEstrada = loadImage("estrada.png");
  imagemDoAtor=loadImage("ator-1.png");
  imagemCarro1 =loadImage("carro-1.png");
  imagemCarro2 = loadImage("carro-2.png");
  imagemCarro3 = loadImage("carro-3.png");
}

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

function draw() {
  background(imagemDaEstrada);
  mostaAtor();
  mostraCarro(imagemCarro1,xCarro1,yCarro1);
  movimentaCarro(xCarro1);
  movimentaAtor();

}

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

function mostraCarro(imagem,xCarro,yCarro){
 image(imagem,xCarro,yCarro,50,40); 
}

function movimentaCarro (xCarro){
  xCarro -=2
}

function movimentaAtor(){
  if(keyIsDown(UP_ARROW))
    yAtor -=3
  if(keyIsDown(DOWN_ARROW))
    yAtor +=3
} 
7 respostas

Não função você colocou xCarro, o certo é xCarro1 como está na variável.

Oi, Marcelo, obrigado pela ajuda mas esse seria o argumento da função, no draw eu chamo como xCarro1. Não é possível montar desse jeito a função?

não existe nenhuma variável xCarro , então dentro da função ela não tem parâmetros pra executar.

O que eu queria fazer era algo como mostrado na imagem abaixo, como seria possível fazer? Eu precisaria declarar xCarros? Quando eu rodei ele não acusou desse parâmetro ser desconhecido. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Então, dentro dessas funções:

function mostraCarro(imagem,xCarro,yCarro){ image(imagem,xCarro,yCarro,50,40); }

function movimentaCarro (xCarro){ xCarro -=2 }

Você colocou as variáveis com o nome errado, sendo que anteriormente você havia declarado as variáveis como: xCarro1 e yCarro1. Se você acrescenta o nº1 nas variáveis irá funcionar tranquilamente. O programa ficaria assim:

function mostraCarro(imagem,xCarro1,yCarro1){

image(imagem,xCarro1,yCarro1,50,40);

} function movimentaCarro (xCarro1){

xCarro1 -=2

}

É exatamente o que o Pedro falou, me desculpe por eu não ter explicado.

Então gente eu entendi isso que essa variável não está declarada, mas olha o seguinte: A função mostra carro está definida com xCarro.function mostraCarro(imagem,xCarro,yCarro){ image(imagem,xCarro,yCarro,50,40); }

E no draw eu chamo ela com o xCarro1 mostraCarro(imagemCarro1,xCarro1,yCarro1);

Por que isso não funciona com a outra?