Un remplaçant de Paulscode's SoundSystem pour LWJGL 3: Audiokode
-
#Introduction(Introduction)
Depuis la sortie de LWJGL 3.x, la (célèbre ?) librairie de Paulscode, 3DSoundSystem, n’est plus utilisable et elle n’a pas été mise à jour.
La solution la plus adoptée a donc été d’écrire son propre code pour OpenAL et le chargement de musiques/bruitages. Je vous propose de remédier à cela!#Installation(Installation)
Pour le moment, le seul moment est copier les sources et de compiler la librairie soit-même.Cependant, si vous avez Git d’installé et que vous utilisez Gradle, vous pouvez ajouter ceci dans .gitmodules (rajoutez le dans votre dossier racine si vous n’en n’avez pas):
[submodule "Audiokode"] path = Audiokode url = https://github.com/jglrxavpok/Audiokode.git
Vous pouvez aussi faire cette commande dans votre dossier racine:
git submodule add https://github.com/jglrxavpok/Audiokode.git
Cela téléchargera en plus directement le projet (et modifies le fichier .gitmodules en conséquence).
Ensuite, une fois ceci fait, ajoutez ceci dans votre settings.gradle (à créer si besoin):
include 'Audiokode'
Et dans votre fichier build.gradle:
// … dependencies { // ... compile project(':Audiokode') // ... } // ....
Un petit refresh des dépendances avec Gradle, et vous êtes prêts!
#Utilisation(Utilisation)
Initialisation du système:// Initialisation SoundEngine engine = new SoundEngine(); engine.initWithDefaultOpenAL();
Exemple pour jouer une musique:
// Une musique de fond Source source = engine.backgroundMusic("TestWav", false); source.play(); source.setGain(0.15f); // contrôler le volume
:::
engine.quickplayBackgroundMusic("TestWav");
:::
Attention! Si vous n’utilisez pas ThreadedSoundEngine, vous aurez besoin d’ajouter ceci dans la boucle principale de votre jeu:
engine.update();
Cela permet à Audiokode de faire boucler les musiques, de faire bouger l’écouter, etc.
Et voilà! Vous pouvez aussi utiliser ThreadedSoundEngine si vous voulez laisser Audiokode mettre à jour votre son tout seul dans son coin.