1
resposta

Colisao

Como posso adicionar mais sons de colisão ??

1 resposta

Olá, João, tudo bem?

Obrigada pelo aguardo de um feedback.

Neste caso, poderíamos criar uma variável que armazena uma lista de sons.

Criaremos uma função que pega um número aleatório, passando como parâmetro o seu número mínimo e o máximo. Essa função nos auxiliará a pegar um índice aleatório na listaDeSons. Para essa função utilizei uma função nativa do JavaScript, Math.random().

Em seguida, criaremos uma variável que armazenará esse índice do som correspondente da listaDeSons para ser executada quando ocorrer a colisão.

Utilizei o mesmo som utilizado pelo professor, portanto, você não verá diferença de som, mas você poderá carregar os arquivos diferentes de sons, armazenar em variáveis e guardar as variáveis na lista de som.

Para fim didático, utilizei o console.log() para constatar a execução desse código.

Segue o meu código comentado:

listaDeSons = [somDaColisao, somDaColisao, somDaColisao]; //essa variavel ficara no arquivo de imagens e sons

function getRandomNumber(min, max) { //a funcao ira pegar um numero aleatorio entre o minimo e maximo 
  return Math.floor(Math.random() * (max - min + 1) ) + min;
}
if (colisao){
      voltaAtorParaPosicaoInicial();
            /*na variavel posicaoSom, sera a armazendo o indice correspondente a um som na listaDeSons, 
            o primeiro parametro sera o primeiro elemento da lista, o segundo corresponde o ultimo elemento da listaDeSons
            */
      let posicaoSom = getRandomNumber(0, listaDeSons.length - 1);
      listaDeSons[posicaoSom].play();
      console.log("Touco o " + (posicaoSom + 1) + "º som."); //imprime qual som esta tocando
    }
  }
}

Segue a documentação do Math.random().

Math.random()

Espero ter ajudado.

Reforço que estou à disposição para tirar dúvidas.

Abraços.

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