1
resposta

[Bug] Som não mesmo com o código certo

link Ao acrescenta os sons o jogo para de rodar

1 resposta

Olá Lucas, tudo bem?

Pelo que entendi, você está tendo um problema com o som do seu jogo em JavaScript. É importante lembrar que, em alguns navegadores, o som só pode ser reproduzido após uma ação do usuário, como um clique. Você já verificou se esse pode ser o problema?

Outra coisa que pode estar causando o erro é a forma como você está adicionando os sons ao seu código. Certifique-se de que os arquivos de som estão no formato correto e que estão sendo chamados corretamente no código.

Além disso, é importante verificar se o problema não está relacionado a algum erro de sintaxe ou lógica no seu código. Uma dica é utilizar o console do navegador para verificar se há algum erro sendo apresentado.

Mas baseado nos testes que fiz no código que você compartilhou comigo no Replit, eu percebi que o erro, na verdade, era simplesmente que o documento index.html foi jogado dentro do arquivo "Sons", e isso pode parecer simples, mas para o navegador é algo fatal, isso porque quando você inicia um projeto sem um documento com um nome padrão na raiz do projeto(na raiz quer dizer que ele não está em nenhuma pasta, que ele está fora das pastas que você colocou outros arquivos, ele está direto na raiz do projeto) o projeto se não tiver esse arquivo padrão na raiz ele vai gerar um erro Http 404! Ou seja, "Page Not Found"(Página Não Encontrada, ou Recurso Não Encontrado), basicamente ele não consegue identificar qual dos arquivos é o principal e qual é o arquivo principal que vai iniciar a aplicação.

Outro problema que encontrei é que você não declarou uma variável do tipo let para o imagemCarros = [imagemCarro, imagemCarro2, imagemCarro3, imagemCarro, imagemCarro2, imagemCarro3];, você precisa adicionar lá no começo do arquivo imagens.js isso: let imagemCarros;.

Em suma era isso, mas um problema que me atrapalhou muito foi o de que o Replit não consegue suportar a propriedade loadSound, pois todas às vezes que eu tentava usar ela gerava problema.

Isso porque a Replit não possui alguns determinados arquivos de suporte que o p5.js tem.

Para resolver esse problema tem duas opções:

  • Primeira Opção: Eu vou deixar 3 arquivos que você pode baixar e upar para o seu projeto, acesse os arquivos aqui!

Após acessar eles você deve colocar eles na raiz do seu projeto, não os coloque em uma pasta, coloque na raiz e upe eles separadamente para o seu projeto, e por fim no index.html você deve referenciar eles com a tag <script>, algo assim(e como eles são arquivos de suporte do p5.js você deve deixar eles na tag <head>):

<head>
    <!-- Resto do conteúdo do SEU head que VOCÊ colocou ou vai colocar -->
    <script src="p5.min.js"></script>
    <script src="p5.dom.min.js"></script>
    <script src="p5.sound.min.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css">
    <meta charset="utf-8">
  </head>
  • Segunda Opção: Você pode ao invés de ter todo esse empenho, pode simplesmente trazer o seu projeto do Replit para o site oficial do p5.js que já tem todo esse suporte.

Mais aí é contigo!

Em geral era isso. Espero ter ajudado, abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor marque ele como solução! ✓