Effets sonores (Jetpack Hero)
Ajouter des effets sonores en one shot est très simple avec DragonRuby.
Pour ça on ajoute une entrée dans le hash args.audio
. Le son sera joué
immédiatement, puis l’entrée dans args.audio
sera supprimée automatiquement
quand le son arrivera à son terme. Exemple :
args.audio[:the_key] = { input: "sounds/the_sound.wav" }
Voici ce que ça donne en contexte. Jouer un petit son quand le personnage ramasse un bidon de fuel :
args.state.fuel.each do |f|
if args.state.hero.intersect_rect?(f)
args.state.hero.jetpack_power += 20
args.state.hero.jetpack_power = args.state.hero.jetpack_power.clamp(0, 100)
f.used = true
args.audio[:fuel] = { input: "sounds/fuel.mp3" }
end
end
Si on réécrit la même clé dans le hash args.audio
alors que le son n’est pas
terminé, celui-ci sera rejoué du début. Ça peut-être utile mais parfois ce n’est pas ce qu’on veut.
Pour éviter de relancer le son si il est toujours en jeu il suffit de tester la
présence de la clé dans le hash :
args.audio[:jetpack] = { input: "sounds/jetpack.wav" } unless args.audio[:jetpack]
Pour finir, voici trois sites qui me servent tout le temps pour créer ou obtenir des effets sonores :
Références
- Vous trouverez le code de Jetpack Hero sur github
- Documentation de DragonRuby
Cet article fait partie d’une série :
- Jetpack Hero
- Partie II
- Une platforme, des collisions
- Première animation du personnage
- Ajouter des platformes
- Du carburant pour le jetpack
- Collecte de minerai
- Effets sonores
- Du rangement avec la classe Game
- Apparition des aliens
- Tir du personnage
- On dégomme de l’alien
- GAME OVER
- Les aliens bougent enfin
Commentaires
Pas encore trouvé de solution simple et non-invasive pour avoir des commentaires sur le blog. En attendant vous pouvez laisser votre Commentaire sur mastodon@lkdjiin