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

Fiz algumas modificações, ficaram boas?

Em alguns detalhes do jogo Freeway do Atari que a gente recria, ele pede pra gente pontuar no y 15, e pra renascer no mesmo 366 inicial. Só que eu acho que fica mais interessante usar o 0 - 15 pra pontuação do y, pra ter a sensação do personagem saindo da tela, e voltar pro 366 + 45 (pouco menos do tamanho total do ator), pra dar a impressão de quando você ganha, uma vaca sai por cima, e outra entra por baixo. :) Porque também me encontrei com a situação de passar por cima, e no momento que o ator nasce embaixo, eu ainda estava com seta pra cima apertada, então acabava batendo no primeiro carro e perdendo ponto a toa, então começar com 366 + 45 acaba também, além de ficar mais bonito, te dando a oportunidade de subir sem perigo de perder pontos, mas ainda com o if pra andar pra baixo com < 366, então ele sobe, mas continua não saindo da tela. :)

Queria saber também como que eu faria pra aumentar a dificuldade a cada ponto, deixei uma parte comentada no ator.js, que quando eu tentei executar, sumiram-se 3 dos carros, intercaladamente o 2º, 4º e 6º carro. ):

ator.js

// Variáveis do Ator

let xAtorInicial = 50;
let xAtor = 50;
let yAtor = 366;
let atorComprimento = 30;
let atorAltura = 30;
let velocidadeAtor = 2

// Variáveis do ponto do Ator (eu)

let meusPontos = 0;

// Demonstração visual do meu ator

function mostraAtor(){

  image(imagemDoAtor, xAtor, yAtor, atorComprimento, atorAltura);

}

// O que faz meu ator se mexer

function movimentaAtor(){

  if(keyIsDown(UP_ARROW) && yAtor > - 15){

    yAtor -= velocidadeAtor

  }

  if(keyIsDown(DOWN_ARROW) && yAtor < 366){

    yAtor += velocidadeAtor

  }

}

function incluiPontos(){

  textAlign(CENTER);
  textSize(25);
  fill(color(255,165,0));
  rect(xAtor, 6, 29, 24);
  fill(0);
  text(meusPontos, xAtor + 15, 27);

}

function fazPonto(){

  if(yAtor < -10){

    meusPontos += 1
    yAtor = 366 + 45;
    pontos.play();
    //velocidadeCarros += [0.5, 0.5, 0.5, 0.5, 0.5, 0.5];

  }

}

Também defini um xAtorInicial pra mudar junto com o xAtor para facilitar a mudança do texto na hora que o ator morre. :D

carro.js

// Variáveis de todos os Carros

let comprimentoCarro = 50;
let alturaCarro = 40;
let xCarros = [500, 500, 500, 500, 500, 500];
let yCarros = [40, 96, 150, 211, 262, 318];
let velocidadeCarros = [2, 2.5, 3.2, 5, 3.3, 2.3];

// Demonstração visual do meu carro

function mostraCarro(){

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

    image(imagemCarros[i], xCarros[i], yCarros[i], comprimentoCarro, alturaCarro);

  }

}

// O que faz o carro mexer

function movimentaCarro(){

  for (let i = 0; i < imagemCarros.length; i++){

    xCarros[i] -= velocidadeCarros[i];

    if (xCarros[i] < 0 - comprimentoCarro){

      xCarros[i] = 550;

    }

  }

}

var colisao = false;

function verificaColisao(){

  for (let i = 0; i < imagemCarros.length; i++){

    colisao = collideRectRect(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, atorComprimento-3, atorAltura-3);

    if(colisao){

      xAtor = xAtorInicial;
      yAtor = 366;
      colidiu.play();

      if (meusPontos > 0){

      meusPontos -= 1;

      }

    }

  }

}

Comecei a estudar programação tem cerca de 1 mês, e gostaria de saber se meu progresso parece estar indo bem. :) Adorei os cursos de vocês e espero aprender muito mais ainda!

1 resposta
solução!

Fala, André! Tudo bem contigo?

Desculpe a demora em dar um retorno!

Perfeito, meu amigo! No meu projeto usei da mesma lógica para que a vaquinha não colida com o primeiro carro!

Dê uma olhada nesse projeto do Jean Knieling dos Santos onde implementou outra lógica que gostei muito!!!

Depois, poste seu link para que possamos dar uma olhada!

Espero ter contribuído, André!

Um abraço e bons estudos