Un remplaçant de Paulscode's SoundSystem pour LWJGL 3: Audiokode


  • Modérateurs

    #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
    

    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.

    Lien Github