1
resposta

[Dúvida] Erro

Estou tentando transportar o jogo pong do curso ChatGPT e JavaScript: construa o jogo Pong para um projeto local usando o Visual Studio Code.

Tudo está rodando ok, menos a parte de audio. Quando tento atribuir a loadSound() a uma variável dentro de preload() o console já me avisa que:

p5.js says: [test.js, line 4] "loadSound" is not defined in the current scope. If you have defined it in your code, you should check its scope, spelling, and letter-casing (JavaScript is case-sensitive).

E assim que qualquer situação solicite o áudio no jogo aconteça o jogo crasha, deixando o seguinte mensagem no console:

Uncaught (in promise) ReferenceError: loadSound is not defined at preload (test.js:4:5) at p5._start (p5.js:63999:27) at new p5 (p5.js:64355:22) at _globalInit (p5.js:63258:17)

já verifiquei que o caminho do arquivo na loadSound() está correto.

eu estou chamando o p5 no html da seguinte forma:

"https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.1/p5.js" "https://cdnjs.cloudflare.com/ajax/libs/p5.sound/1.4.1/p5.sound.js"

já testei com só um, com os dois, invertendo as posições, mas ainda sim ele parece não carregar qualquer uma das funções do p5.audio, já que todas as que testei deram como não definidas.

o código javascript está exatamente como no arquivo final do projeto, e também já rodei vários testes com a Luri me auxiliando, mesmo assim o erro se mantém. Vi que existem uma minoria de pessoas passando por esse problema, mas ninguém responde com uma real solução e as respostas ficam no "você importou corretamente a biblioteca?" ou tratam de situações que não se aplicam a minha.

Alguém aqui já passou por isso com a biblioteca, ou sabe o que pode estar acontecendo e como resolver?

1 resposta

Oi Pedro,

Entendo sua frustração com esse erro persistente! 😜

O problema que você está enfrentando, "loadSound is not defined", indica que a biblioteca p5.sound não está sendo carregada corretamente ou não está disponível no escopo do seu código.

Apesar de você ter incluído os arquivos p5.js e p5.sound.js no seu HTML, a ordem em que eles são carregados é crucial. O p5.sound.js depende do p5.js para funcionar.

Se o p5.sound.js for carregado antes do p5.js, as funções de áudio não estarão disponíveis, resultando no erro que você está vendo.

A solução é garantir que o p5.js seja carregado antes do p5.sound.js no seu HTML. A ordem correta seria:

<script src="p5.js"></script>
<script src="p5.sound.js"></script>

Além disso, verifique se os caminhos dos arquivos estão corretos e se os arquivos p5.js e p5.sound.js estão realmente presentes na pasta do seu projeto. 👍

Para saber mais: Documentação oficial p5.sound

Não desanime, continue praticando e explorando as possibilidades do p5.js! 🤔