1
resposta

Alterar a trilha em loop conforme pontuação

Resolvi fazer uma brincadeira e alterar a música que toca após determinada pontuação. Porém, não consegui, fica tocando somente a trilha 1.

//Variáveis Ator
let xAtor = 100;
let yAtor = 370;
let colisao = false;
let velocidadeAtor = 2;
let pontos = 0;

function mostraAtor(){
  image(imagemAtor, xAtor, yAtor, 25, 25);
}

function movimentaAtor(){
  if(keyIsDown(UP_ARROW)){
    yAtor -= velocidadeAtor
  }
  if(keyIsDown(DOWN_ARROW)){
    if(podeSeMover()){
    yAtor += velocidadeAtor
    }
  }
  if(keyIsDown(LEFT_ARROW)){
    xAtor -= velocidadeAtor
  }
  if(keyIsDown(RIGHT_ARROW)){
    xAtor += velocidadeAtor
  }
}

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

function colidiu(){
  yAtor = 370;
}

function mostraPontos(){
  textAlign(CENTER);
  textSize(25);
  fill(color(255, 240, 50));
  text(pontos, 20, 27);
}

function marcaPontos(){
  if(yAtor <= 15){
    pontos += 1;
    somPontos.play();
    colidiu();
  }
}

function podeSeMover(){
  return yAtor < 370;
}

function musica(){
  if(pontos >= 1){
    trilha2.setVolume(0.3);
    trilha2.play();
  } else {
    trilha1.setVolume(0.1);
    trilha1.play();
  }
}

Alguém saberia como resolver?

1 resposta

Fala, Gabriel! Tudo bem contigo?

Desculpe a demora em dar um retorno!

Dentro de sctrach.jsna função setup()a trilha original está em looping e assim permanecerá. O que podemos fazer é que após o primeiro ponto dentro da função marcaPonto()toque a segunda trilha!

Comente a linha do loopingpara sabermos se deu tudo certo.

Obs: não esqueça de iniciar a variável da segunda trilha dentro de imagens.js

Acredito que tenha funcionado.

Como desafio fica: como podemos começar o game já com a primeira música?

Caso tenha dúvidas nos retorne, Gabriel!

Um abraço e ficaremos no aguardo!!!