Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Estou com um Problema no código e não tenho a miníma ideia de como resolver

1 resposta
solução!

Bom dia, Breno. Tudo bem? Então, seu código está com vários problemas que estão impedindo o bom funcionamento dele. Vou tentar te ajudar. Depois de dar uma olhada nas correções, se você for aplicá-las, eu sugiro que altere elas uma por uma enquanto vai testando o jogo pra você ver exatamente como cada mudança afeta seu jogo.

Começando pelo arquivo imagem.js . Você tem um erro de digitação logo no comecinho do arquivo e escreveu 'imgemAtor' ao invés de 'imagemAtor'. A lista com as variáveis que armazenam as imagens de cada carro você não declara como uma nova variável, você insere diretamente ali no preload da imagem. O arquivo ficaria assim:

  var imagemAtor;
  var imagemEstrada;
  var carro3;
  var carro2;
  var carro1; 

  function preload(){

    //PreLoad da Imagem
    imagemEstrada = loadImage("imagem/estrada.png")
    imagemAtor =loadImage("imagem/ator-1.png")
    carro1=loadImage("imagem/carro-1.png")
    carro2=loadImage("imagem/carro-2.png")
    carro3=loadImage("imagem/carro-3.png")
    carrose = [carro1, carro2, carro3];

  }
}

Depois, no arquivo Carros.js , você tem um probleminha na função 'mostraCarro' onde na variável 'ycarro' você pede a posição 0 da lista ao invés da posição i, fazendo todos os seus carros estarem na mesma faixa.

var xcarro = [600,400,490];
var ycarro=[40,150,100,215,155];



function mostraCarro(){

  for(var i = 0; i < carrose.length; i = i + 1){

    image(carrose[i], xcarro[i], ycarro[i], 50, 40);
  }
}


function moveCar(){

  xcarro[0]-=3
  xcarro[1]-=4
  xcarro[2]-=6

}

function revertposition(){

  //Deixe em branco por enquanto.
}

Depois, no arquivo Ator.js, você se confundiu um pouco nas coordenadas do ator na função 'mostraAtor'. Além disso, você não colocou uma tecla válida para movimentar o ator na função 'moveAtor'.

var yAtor = 366


function mostraAtor(){

  image(imagemAtor,100,yAtor,30,30)
}


function moveAtor(){

  if(keyIsDown(UP_ARROW)){
     yAtor-=3
  }

  if(keyIsDown(DOWN_ARROW)){
    yAtor+=3
  }
}

Por fim, no arquivo sketch.js, você inseriu a função 'preload()' dentro da sua função 'draw()', o que fazia suas imagens ficarem piscando dentro do jogo. Você também precisa remover aquele image de dentro da função 'draw' e substituir pelo nossa função mostraAtor().

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

}

function draw() {
  background(imagemEstrada);
  mostraAtor();
  moveAtor();
  mostraCarro();
  moveCar();
  revertposition();
}

Pronto! Seu jogo agora deve estar funcionando perfeitamente. Entretanto, a função de loop dos carros não está ativa ainda. A função anterior para isso não estava funcionando e ela possui muitas diferenças do código corrigido, então sugiro você escrever uma nova. Se você desejar, pode usar essa solução provisória bem simples para ver seu jogo funcionando (basta colar esse código no lugar da sua 'revertposition()' que deve estar em branco):

function revertposition(){

  if(xcarro[0] < -80) {

    xcarro[0] = 600;
  }

  if(xcarro[1] < -80) {

    xcarro[1] = 560;
  }

  if(xcarro[2] < -80) {

    xcarro[2] = 520;
  }
}

Espero ter ajudado! =D Lembre-se que minhas sugestões são apenas uma das inúmeras soluções possíveis para fazer o programa rodar corretamente. O mais importante é que o programa funcione e esteja o mais otimizado, organizado e legível possível para facilitar sua manutenção. Abraço!