Message #11762
Sujet: Séquenceur d'animation de personnage
| Type | Date | Auteur | Contenu |
|---|---|---|---|
| Dernière modification | 05-03-2017 21:37:18 | jonath313 |
Ce programme utilise le principe des machines à état (FSM : Finit State Machine) pour imposer un séquencement (ordre de succession d'opérations) au programme.
Ici, l'appuie sur une touche lancera une succession d'animations imaginée par l'utilisateur. Par exemple, on voudrait , en fonction d'un événement clavier, lancer un "combo" (combinaison d'animations), le séquencement suivra alors l'ordre des animations imposée par l'utilisateur. J'ai fais ce programme pour montrer le principe de base. On peut imaginer que par la suite nous aurons plusieurs machines à état. Chacune figée dans un état d'attente. Si on appui sur une touche, on active la combinaison d'animation 1, l'animation est "busy", l'appui sur d'autres touches devient inopérant jusqu'à ce que la machine à état fsm_combo1 ait terminée son séquencement. Le code fait en sorte que vous ayez juste à changer les valeurs des start / end / speed des frames au début du fichier (#define). On peut ajouter des états ou en enlever ( enum => ST_ANIM_X). Voici le code : Code c++ :Voila, j’espère que cela vous sera utile. J'ai appliqué cela à des animations mais on peut imaginer pleins d'autres cas d'utilisation (exemple séquencement d'un déplacement d'un objet, ...). Cette machine a état est linéaire, mais on peut imaginer que à chaque état nous ayons plusieurs états futurs possible. |
| Création du message | 05-03-2017 19:29:21 | jonath313 |
Ce programme utilise le principe des machines à état (FSM : Finit State Machine) pour imposer un séquencement (ordre de succession d'opérations) au programme.
Ici, l'appuie sur une touche lancera une succession d'animations imaginée par l'utilisateur. Par exemple, on voudrait , en fonction d'un événement clavier, lancer un "combo" (combinaison d'animations), le séquencement suivra alors l'ordre des animations imposée par l'utilisateur. J'ai fais ce programme pour montrer le principe de base. On peut imaginer que par la suite nous aurons plusieurs machines à état. Chacune figée dans un état d'attente. Si on appui sur une touche, on active la combinaison d'animation 1, l'animation est "busy", l'appui sur d'autres touches devient inopérant jusqu'à ce que la machine à état fsm_combo1 ait terminée son séquencement. Le code fait en sorte que vous ayez juste à changer les valeurs des start / end / speed des frames au début du fichier (#define). On peut ajouter des états ou en enlever ( enum => ST_ANIM_X). Voici le code : Code c++ :Voila, j’espère que cela vous sera utile. J'ai appliqué cela à des animations mais on peut imaginer pleins d'autres cas d'utilisation (exemple séquencement d'un déplacement d'un objet, ...). Cette machine a état est linéaire, mais on peut imaginer que à chaque état nous ayons plusieurs états futurs possible. |
| Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
|---|---|---|---|---|
|
Préférences cookies Corrections |
![]() ![]() ![]() ![]() |
Propulsé par Django xhtml 1.0 css 2.1 |
884 membres 1440 sujets 11337 messages |
Dernier membre inscrit: Saidov17 152 invités en ligne membre en ligne: - RSS Feed |