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

[Dúvida] [DÚVIDA] TRILHA SONORA INICIAR AUTOMATICAMENTE

Olá,

Quando compartilho o jogo por um link e o abrem, precisa haver uma colisão ou marcar pontos para que a trilha sonora do jogo inicie. Segue jogo para check :D https://editor.p5js.org/pitafarias/full/0urIaaxuu

Já tentei incluir um ".play()" antes do loop da trilha, porém não acontece nada. Segue código da aba sketch para verificação :D

function setup() {
  createCanvas(600, 400);
  trilhaDoJogo.play();
  trilhaDoJogo.loop();
}

function draw() {
  background(imagemDaEstrada);
  mostrarPlayer();
  mostrarCarros();
  movimentarPlayer();
  movimentarCarros();
  voltarPosicaoInicialDosCarros();
  verificarColisao();
  incluirPlacar();
  marcarPontos();
}

**Ressalto que a trilha funciona, mas que é necessário uma ação do jogo para que ela inicie (seja colisão ou marcar um ponto). **

1 resposta
solução!

Olá Patrick,

Pelo que entendi, você gostaria que a trilha sonora do seu jogo começasse a tocar automaticamente quando o jogo é aberto, certo? Isso é uma questão comum e tem a ver com a política de reprodução automática de áudio de alguns navegadores.

A maioria dos navegadores modernos bloqueia a reprodução automática de áudio para evitar que os usuários sejam surpreendidos com sons inesperados ao abrir um site. No entanto, eles permitem a reprodução automática de áudio se o usuário interagir com o site de alguma forma, como clicar em um botão ou fazer uma ação no jogo, como você mencionou.

Uma solução comum para contornar isso é pedir ao usuário para interagir com o site antes de iniciar a reprodução do áudio. Por exemplo, você poderia criar uma tela inicial para o seu jogo com um botão "Iniciar" e só começar a tocar a trilha sonora quando o usuário clicar nesse botão.

Aqui está um exemplo de como você pode fazer isso:

let button;

function setup() {
  createCanvas(600, 400);
  button = createButton('Iniciar');
  button.position(width / 2, height / 2);
  button.mousePressed(startGame);
}

function startGame() {
  trilhaDoJogo.play();
  trilhaDoJogo.loop();
  button.remove();
}

function draw() {
  background(imagemDaEstrada);
  mostrarPlayer();
  mostrarCarros();
  movimentarPlayer();
  movimentarCarros();
  voltarPosicaoInicialDosCarros();
  verificarColisao();
  incluirPlacar();
  marcarPontos();
}

Neste exemplo, um botão "Iniciar" é criado no meio da tela durante a configuração do jogo. Quando o usuário clica neste botão, a função startGame() é chamada, que inicia a trilha sonora e remove o botão da tela.

Espero que isso resolva o seu problema! Lembre-se que esta é uma solução comum, mas pode não funcionar em todos os casos, dependendo das políticas específicas do navegador que você está usando.

Espero ter ajudado e bons estudos!