L'audio avec love2d

Nous allons ajouter de l’audio. Ce chapitre est très court. En effet, comme pour beaucoup de choses, l’API LÖVE nous permet d’ajouter très facilement de l’audio au jeu.

Téléchargez ces deux fichiers que nous utiliserons dans ce tutoriel :

sfx.ogg et song.ogg

Commençons par la chanson et faisons en sorte qu’elle boucle sans fin. Nous devons d’abord créer l’audio. Nous appelons cela une source (la source de l’audio). Nous pouvons créer la source avec love.audio.newSource(chemin). Cette fonction prend deux arguments. Le premier est le chemin d’accès au fichier, le deuxième est le type de source. Cela peut être « statique » ou « flux ». Permettez-moi de citer le wiki LÖVE : « Une bonne règle d’or consiste à utiliser stream pour les fichiers musicaux et statique pour tous les effets sonores courts. Fondamentalement, vous voulez éviter de charger de gros fichiers à la fois. »

Donc dans notre cas, nous voulons utiliser « stream », car c’est une chanson.

1
2
3
function love.load()
  song = love.audio.newSource("path/to/song.ogg", "stream")
end

Ensuite, nous voulons la jouer. Il y a 2 solutions de procéder

1
2
3
4
5
6
7
function love.load()
  song = love.audio.newSource("path/to/song.ogg", "stream")
  -- method 1
  love.audio.play(song)
  --method 2
  song:play()
end

Il n’y a pas vraiment de différence entre les deux, et s’il y en a, ce n’est pas une différence que vous remarquerez. Utilisez donc ce que vous préférez. Je préfère la deuxième méthode.

Lorsque vous exécutez le jeu, la chanson devrait maintenant jouer. Mais ça ne boucle pas. Comment pouvons-nous régler ceci ? Je peux vous le dire, mais vous devriez apprendre à trouver ce genre de choses vous-même. Tout d’abord, allons à la page wiki de l’objet source. Maintenant, nous devons chercher quelque chose qui pourrait nous aider à boucler l’audio. Appuyez peut-être sur Ctrl + F pour rechercher sur la page, puis tapez « loop » (boucle).

Source: setLooping Définit si la source doit boucler.

Je l’ai !

1
2
3
4
5
function love.load()
  song = love.audio.newSource("path/to/song.ogg", "stream")
  song:setLooping(true)
  song:play()
end

Très bien, nous avons maintenant une musique de fond en boucle. Ensuite, nous voulons ajouter un effet sonore. Faisons en sorte que l’effet sonore soit joué à chaque fois que vous appuyez sur Espace. Nous commençons par créer la nouvelle source.

1
2
3
4
5
6
7
8
function love.load()
  song = love.audio.newSource("path/to/song.ogg", "stream")
  song:setLooping(true)
  song:play()

  -- sfx is short for 'sound effect', or at least I use it like that.
  sfx = love.audio.newSource("sfx.ogg", "static")
end

Ensuite, nous ajoutons le rappel d’une touche pressée, et faisons jouer l’effet sonore chaque fois que nous appuyons sur « space » (espace).

1
2
3
4
5
function love.keypressed(key)
  if key == "space" then
    sfx:play()
  end
end

Et nous avons terminé. Comme je l’ai dit, il n’y a pas grand-chose à dire sur l’audio, et tout ce que vous pourrez apprendre, vous pouvez facilement le rechercher vous-même dans la documentation de l’API. Par exemple, comment régler le volume, comment mettre la source en pause ou comment obtenir la position de la source.

Résumé

L’API LÖVE facilite l’ajout d’audio. Nous appelons un objet audio une source. Souvent, nous pouvons comprendre comment faire quelque chose en parcourant la documentation de l’API.