1
resposta

Quero fazer uma alteração na velocidade dos carros, mas não consigo.

Na parte que mostra as velocidades dos carros eu queria diminuir se os pontos dos jogadores menor ou igual a 4 ou aumentar a velocidade se os pontos forem maiores que 5. https://cursos.alura.com.br/course/javascript-listas-lacos/task/56243

1 resposta

Olá Leandro, tudo bem? espero que sim.

Desde já, agradecer a paciência em aguardar pela resposta.

Uma dica bem legal para solucionar a sua resposta da melhor forma possível, é compartilhar o código já feito por ti. Deste modo conseguimos compreender o que você deseja implementar. Mas vou lhe ajudar com base na sua descrição.

Entendi que conforme o jogador faça pontos o tráfego de carros fique mais intenso, e assim fazendo com que a dificuldade aumente até o ponto de se tornar muito difícil chegar ao outro lado da estrada.

Para isso podemos usar uma função, vou criar a função velocidade ela vai pegar a lista que controla a velocidade dos carros e de acordo com o número que está guardado na variável meuspontos, podemos escolher que velocidade queremos, sinta a vontade para modificar os valores que coloquei na lista, utilizei esses afim de exemplificar, deste modo a função fica assim:

function velocidade(){
  if(meusPontos < 4){
    velocidadeCarros = [1.2, 1.3, 1.6, 1, 1.1, 1.5];
     }
  if(meusPontos >= 4)
    {
       velocidadeCarros = [2, 2.5, 3.2, 5, 3.3, 2.3];
    }
  if(meusPontos > 5){
     velocidadeCarros = [3.5, 3.9, 4.3, 5, 4.4, 4.9];
     }  
}

A partir de agora é só pensarmos em que lugar podemos chamar essa função, neste caso optei por chamar na função pontosMaiorQueZero, já que pode haver mudanças na velocidade dos carros caso tenha mudanças nos pontos do jogador, a função vai ficar assim:

function pontosMaiorQueZero(){
  velocidade(); // será chamada aqui
  return meusPontos > 0;
}

Por fim, é importante iniciar a nossa função velocidade() chamando ela em function draw(){} ficando assim:

function draw() {
  background(imagemDaEstrada);
  mostraAtor();
  mostraCarro();
  movimentaCarro();
  movimentaAtor();
  voltaPosicaoInicialDoCarro();
  verificaColisao();
  incluiPontos();
  marcaPonto();
  velocidade(); // a nova função
}

O seu código ator.js fica deste jeito:


//código do ator
let xAtor = 85;
let yAtor = 366;
let colisao = false;
let meusPontos = 0;

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

function movimentaAtor(){
  if (keyIsDown(UP_ARROW)){
    yAtor -= 3;
  }
  if (keyIsDown(DOWN_ARROW)){
    if(podeSeMover()){
    yAtor += 3;
    }
  }
}

function verificaColisao(){
  //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
  for (let i = 0; i < imagemCarros.length; i++){
    colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 15)
    if (colisao){
      somDaColisao.play();
      voltaAtorParaPosicaoInicial();
    if(pontosMaiorQueZero()){
    meusPontos -= 1;
    }
    }
  }
}

function voltaAtorParaPosicaoInicial(){
  yAtor = 366;
}

function incluiPontos(){
  textAlign(CENTER);
  textSize(25);
  fill(color(255, 240, 60))
  text(meusPontos, width / 5, 27);
}

function marcaPonto(){
  if (yAtor < 15){
    meusPontos += 1;
    somDoPonto.play();
    voltaAtorParaPosicaoInicial();
  }
}
function marcaPonto(){
  if (yAtor < 15){
    meusPontos += 1;
    voltaAtorParaPosicaoInicial();
  }
}

function pontosMaiorQueZero(){
  velocidade();
  return meusPontos > 0;
}

function podeSeMover(){
    return yAtor < 366;
}

function velocidade(){ // EXEMPLO
  if(meusPontos < 4) // vai receber a velocidade normal
  { 
    velocidadeCarros = [1.2, 1.3, 1.6, 1, 1.1, 1.5];
     }
  if(meusPontos >= 4) // entre o valor 4 e 5 fica mais rápido ainda. 
    {
       velocidadeCarros = [2, 2.5, 3.2, 5, 3.3, 2.3];
    }
  if(meusPontos > 5){ // do 6 em diante fica muito mais rápido
     velocidadeCarros = [3.5, 3.9, 4.3, 5, 4.4, 4.9];
     }  
}

Espero que eu consiga com esta resposta te ajudar de alguma forma, vou deixar o link para que você consiga entender melhor o que fiz.

Um grande Abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!