[phaser3] Ajouter du gros son à son jeu… ou juste des bruitages

24h pour découvrir le département MMI

[phaser3] Ajouter du gros son à son jeu… ou juste des bruitages

L’ajout de son n’est pas très difficile, mais il convient de respecter quelques règles pour éviter tout problème.

Première contrainte : le son est très dépendant du navigateur que vous utilisez. Il peut passer sur un navigateur, et pas sur l’autre. Le format du son est essentiel. Aussi nous recommandons d’utiliser le format ogg.

Pour convertir un son en ogg, utilisez un outil, par exemple l’outil en ligne suivant :

 https://audio.online-convert.com/fr/convertir-en-ogg

Une fois nos fichiers son au format ogg, nous les ajoutons dans notre répertoire assets. Le fonctionnement est assez similaire à ce qui se faisait pour les images. Dans la partie preload() on va d’abord charger les sons, en leur attribuant un identifiant. Par exemple si on a deux fichiers guile.ogg et gun.ogg, on les charge avec les noms musiquedefond et coupDeFeu avec les lignes suivantes dans preload() :

   this.load.audio('coupDeFeu', 'assets/gun.ogg');
   this.load.audio('background', 'assets/guile.ogg');     

Une fois chargés, on va les ajouter dans le gestionnaire de son de phaser, dans la fonction create() comme suit :

    this.sound.add('coupDeFeu');
    this.sound.add('background');

Il ne reste plus qu’à lancer le son que l’on veut, quand on le souhaite – soit au démarrage dans la fonction create(), soit dans update() si un événement se produit. Par exemple, pour lancer la musique associée à background dès le début, on écrira dans la fonction create() :

   this.sound.play('background');

Ce n’est pas plus difficile que ca.

La documentation complète du son est disponible sur :

https://photonstorm.github.io/phaser3-docs/Phaser.Sound.HTML5AudioSound.html

Notez que la méthode play peut être paramétrée avec les actions suivantes, qui permettent de contrôler le volume d’un son, et plein d’autres choses :

muteboolean<optional>
falseBoolean indicating whether the sound should be muted or not.
volumenumber<optional>
1A value between 0 (silence) and 1 (full volume).
ratenumber<optional>
1Defines the speed at which the sound should be played.
detunenumber<optional>
0Represents detuning of sound in cents.
seeknumber<optional>
0Position of playback for this sound, in seconds.
loopboolean<optional>
falseWhether or not the sound or current sound marker should loop.
delaynumber<optional>
0Time, in seconds, that should elapse before the sound actually starts its playback.

Par exemple, pour lancer un son avec un volume moindre et au ralenti, on écrira :

   this.sound.play('background', {volume : 0.5, rate : 0.6});

Tags: ,

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *