Cliquez le lien ci-dessous pour retourner au sommaire des "tutorials pour créer une DLL Orbiter"
http://orbiter.dansteph.com/forum/index.php?topic=6335.msg95352#msg95352
Note sur la SDK d'OrbiterSound 3.5 - Votre addon vous parle !1-Le principe
2-Une fonction tout en un
3-Comment fabriquer un son de voix1-Le principeSi on implémente un vessel avec par exemple un voix qui donne des infos (comme le DGIV) ou beaucoup de son différent joué
ponctuellement on arrive vite à la limite des 60 "slots" sans compter que le code devient inutilement compliqué avec nos 60 wav chargés alors qu'on en joue un de temps en temps.
Heureusement
depuis la version 3.5 d'OrbiterSound on peut charger et jouer un son tout de suite après.
Avec cette solution on peut jouer virtuellement des milliers de sons !
Comme il est peut probable que la dame dise "il n'y a plus de fuel" en même temps que "ok le pleins est fait"
la solution est d'utiliser à chaque fois le même slot pour jouer ces sons.
Exemple en pseudoCode:
//Dans le header:
#define SLOTVOIX 45 // on utilise le slot 45 par exemple
//Dans vos code CPP:
if(Fuel==Pleins)
{
LoadVesselWav(SLOTVOIX,"LePleinEstFait.wav")
playVesselWav(SLOTVOIX);
}
if(Fuel==Vide)
{
LoadVesselWav(SLOTVOIX,"OnAPlusDeFuel.wav")
playVesselWav(SLOTVOIX);
}
ATTENTION: cette solution n'est valide que pour des sons joué ponctuellement et de temps en temps ! Comme le son est chargé depuis le disque si vous faite ca toute les deux trois images vous allez transformer Orbiter en slideShow ! Ceci dis sur un ordi moderne le fait de charger un son depuis le disque toutes les "nn" secondes ou minutes ne ce remarque pratiquement pas...ATTENTION2: Vous devez bien prevenir l'utilisateur de votre addon d'avoir OrbiterSound 3.5 installé, le truc de charger et jouer tout de suite après ne marche pas avec les version précédentes, dans ce cas il ne ce passerais rien, pas de son. Cette solution est valide pour:
-Des sons de boutons différent "fuel enclenché" "post combustion" ou "click" "clock "proutch"
-Des voix qui donne des feedbacks sur les systèmes "Auto pilot enclenché" "mise a feux dans 10 secondes"
Il faut bien reflechir à vos besoin et à la solution avant de coder:
il est très peu probable de cliquer en même temps sur deux boutons mais si un des son dure plus d'une seconde voir même 5 la probabilité augmente fortement, dans ce cas le sons du premier bouton sera coupé abruptement et remplacé par le nouveau. Cette probabilité est très forte si vous utilisez le même slot pour des son de voix "attention porte du sas ouverte" et des boutons.
On peut donc repartir les son sur plusieurs slot un "SLOTVOIX" un "SLOTBOUTON" par exemple.
En plus de cette répartition on peux envisager de tourner sur plusieurs slot qui seront chargé et joué alternativement
si par exemple on utilise 3 slots on a une capacité de jouer trois son en même temps et la, la probabilité qu'un son soit coupé par un autre diminue fortement.
Message modifié ( 01-08-2007 18:10 )