Cela fait plusieurs années que j’utilise GDevelop et j’aime beaucoup ce logiciel, la rapidité de création est vraiment exceptionnelle, j’adore
Je poste ici parce que j’ai un nouveau projet en tête, dans lequel il faudrait que je puisse ajouter dans mon jeu (natif uniquement) des sons et musiques externes : par exemple, dans le jeu compilé, je peux ouvrir une boite de dialogue pour sélectionner un fichier audio qui s’ouvre directement dans le jeu. J’ai déjà essayé avec les évènements classiques (avec l’extension des boites de dialogue) mais cela ne fonctionne pas.
Je me suis donc renseigné sur la bibliothèque SFML et ses composants qui gèrent la musique et le son, ils ont l’air assez simples d’utilisation. En fait le moment où je bloque c’est dans l’ajout de code externe dans GDevelop. J’ai suivi le tutoriel a la lettre [ wiki.compilgames.net/doku.ph … ithcppcode ] mais au moment du test, Gdevelop affiche immédiatement (au moment ou la compilation est en cours) la notification “Les changements appliqués aux évènements seront appliqués a la prochaine compilation” et les outils C++ affichent "#include expect “FILENAME” or "… Je ne comprends pas, le tutoriel ne fonctionne pas !
Avez vous une idée pour m’aider ?
Merci d’avance !
PS : Je précise que le projet n’est pas commencé, je suis juste en train de tester les fonctionnalités du logiciel pour savoir s’il me permet de réaliser mon projet
dans le champ “fichiers d’en-tête”, retire les lignes vides (il faudra le refaire à chaque fois vu que GDevelop semble en rajouter une à chaque réouverture de la fenêtre d’édition de l’événement C++).
Oah, excellent ! Merci beaucoup !!! ça a fonctionné, il me semblait pourtant bien l’avoir retirée…
Je précise juste à des fins de correction de bugs que si je suis le tuto a la lettre, j’obtiens l’erreur “class RuntimeScene has no member named IsFirstLoop”.
Rebonjour, j’ai juste une autre question vis a vis des sons et musiques du coup : comment fonctionne le système des canaux sur GDevelop ? J’ai lu toute la doc SFML et il n’est aucunement question de canaux audio…
Est ce que cela permet de nommer les objets audio (sf::Music par exemple) ou autre ? Et dans ce cas, quel nom faut il donner a un objet sf::Music pour qu’il corresponde a un canal de GDevelop ?
Il faut utiliser les fonctions fournies par GDevelop pour utiliser les canaux. Ton événement C++ a accès à la scène dans une variable de type “RuntimeScene” et appelée “runtimeScene”. Il faut ensuite en récupérer le jeu (les sons sont globaux au jeu et non à la scène) puis récupérer le SoundManager :
D’accord, donc si je comprends bien, pour que ma fonction codée en C++ puisse lire un fichier son externe au jeu (non ajoutée aux ressources de celui ci une fois le jeu compilé) dans un canal, je dois écrire quelque chose qui ressemble à ça ? :
Merci a tous. Juste un dernier point a éclaircir, comment puis-je remplacer le chemin (gd::String(“blablabla”)) par le texte d’une variable, que je peux définir avec l’extension des boites de dialogue ?
L’idée de base est de pouvoir ouvrir un son qui n’est pas présent de base dans le jeu final, comme pourrait le faire par exemple un lecteur audio. Le problème est que j’ai tout essayé avec les évènements, il n’est possible de lire un fichier (comme un son ou comme une musique) que s’il est présent dès la compilation du jeu (il est alors intégré dans les données de l’application).
Moi, j’ai besoin de pouvoir ouvrir un son externe, la seule voie que je connaisse pour faire cela est de passer par du C++…