Gérer le temps : Le TimeSensor
Pré requis : Utilisation
de DEF et USE, ROUTE
| Type |
Champ |
Defaut |
Borne |
Utilisation |
| SFTime |
cycleInterval |
1 |
0- |
Le temps (en seconde) d'un cucle |
| SFBool |
enabled |
TRUE |
|
Le TimeSensor est-il actif ? |
| SFBool |
loop |
FALSE |
- |
Le TimeSensor est-il cyclique où n'est il lancé qu'une fois |
| SFTime |
startTime |
0 |
- |
Quand le TimeSensor va démarrer |
| SFTime |
stopTime |
0 |
- |
Quand le TimeSensor va s'arrêter |
| SFTime |
cycleTime |
eventOut |
- |
Envoie le temps à chaque début de cycle |
| SFFloat |
fraction_changed |
eventOut |
0 - 1 |
Renvoie la fraction dans le cycle en cours. de 0 (début de cycle) à 1
(fin de cycle) |
| SFBool |
isActive |
eventOut |
|
Le TimeSensor est-il actif ou pas ? |
| SFTime |
time |
eventOut |
|
à chaque tick durant le cycle, envoie un événement. |
Le TimeSensor est défini par une durée (cycleInterval), cette
durée définit un cycle si loop est à TRUE (le TimeSensor se répète à
l'infini).
Le TimeSensor peut être utiliser pour différents objectifs :
-
Lancer des événements périodiques dans la scène (toutes
les minutes ar exemple
-
Initiliaser une action à un temps donné (par exemple,
lancer un événement n secondes après une action donnée)
-
Piloter et rythmer une animation (nous verrons ce point
avec les interpolators)
Les événements générés par TimeSensor
-
isActice envoie un événement à TRUE lorsque le TimeSensor
débute.
-
cycleTime envoie un événement au lancement du TimeSensor (au
startTime)à et à chaque début de cycle.
-
franction_changed envoie la fraction entre le début du cycle et
la fin du cycle. Lorsque le TimeSensor est au début du cycle, franction_changed=0
à la fin du cycle, franction_changed=1.0. franction_changed est toujours entre
0 et 1, il repart à 0 à chaque début de cycle.
-
time envoie le temps à chaque "tick"
(unité de temps indivisible) du TimeSensor. Le temps n'est pas relatif,
c'est le temps depuis le début du chargement de la scène.
Exemple 1 : Un événement toutes les n secondes
A chaque cycle, on génère un événement. Ici, on joue un son
toutes les secondes.
Pour un TimeSensor avec cycleInterval=1 on recopie l'eventOut
cycleTime dans le startTime du son (AudioClip).
Voir le résultat
- Voir la source
Exemple 2 : Un événement qui arrive plus tard
Lorsqu'on clique sur le cône, on lance de TimeSensor. le
cycleInterval est à 5 (secondes). Le son est donc lancé lors du clic,
puis 5 secondes après. Ensuite, le son s'arrête (loop = FALSE).
L'événement utilisé est aussi de cycleTime.
Voir le résultat
- Voir la source
Exemple 3 : L'événement time
Lorsqu'on clique sur le cône, on lance de TimeSensor. le
cycleInterval est à 3 (secondes). Tant que le TimeSensor est actif, un
événement time est envoyé. On recopie l'eventOut time dans le startTime
du son (AudioClip)
Voir le résultat
- Voir la source
Exemple 4 : TimeSensor pour l'animation (fraction_changed)
On utilise le fraction_changed du TimeSensor pour
rythmer l'animation du positionInterpolator.
Ici, l'animation prendra deux secondes (cycleInterval=2)
Voir le résultat
- Voir la source
Pour la même animation elle durera quatre secondes (cycleInterval=4)
Voir le résultat
- Voir la source
Récupérez tous les exemples de
TimeSensor
Retour aux cours VRML
|