Message #11779
Sujet: Séquenceur d'animation de personnage
| Type | Date | Auteur | Contenu |
|---|---|---|---|
| Création du message | 19-03-2017 22:30:21 | Magun |
Salut, alors jvais un peut tout décortiquer, et je te donne mes impréssions à "vif"
tous tes define pour configurer l'animation d'un perso, pourquoi pas, quid de la configuration dynamique ? comment tu fait avec différent modèles, tu fait un header a chaque fois et tu recompile ? sur un gros projet tu augmente considérablement le temps de dev (puisque conflit de versionning sur repo) #define RESET 0 #define SET 1
en terme de lecture par un tier et donc de maintanance c'est "moche" et comme ça complique la lecture, ça complique aussi l'analyse et les symplification logique que tu peut apportés au code (donc optimisation) ce qui m'amène à la première fonction @keypad_KEY_SAVED_STATE_control peut facilement ce réécrire Code c++ :et donc Code c++ :et donc la fonction devient inutile en passant le keyword static, est ici inutile, a la rigeur inline serait plus approprié même remarque pour @key_event_test finalement ça ce simplifi par: Code c++ :ou encore en supprimant l'appelle de la fonction keypad_KEY_SAVED_STATE_control: Code c++ :finalement key_event_test n'est pas vraiment utile en soit du coup même remarque pour OnEvent Code c++ :donc en gros, évite les fonctions qui n'apporte pas de l'isibilité a ton code, quand tu écris une fonction, pose toi la question si elle donne:
voila pour le début, j'en arrive au système d'animation première remarque, une classe serais la bienvenu pour la compréhension ça n'apporte pas grand chose en terme de performance certe, mais quand même plus simple à lire, puisque cela exclue les segments de code telque l'initialisation quand on cherche une info la fonction @fsm_goNextState n'apporte pas une meilleur compréhension tu peut simplement l'enlever, l'appelle d'une fonction à un cout: 15 à 30 cycle cpu contre 1 cycle pour une affectation ![]() ensuite, on ne comprend pas bien pourquoi tu as 2 fonctions qui peuvent être syntétiser en seulement une fonction, @animation_bind_single et @animation_bind_loop sans parler des paramètres à ralonge (cf première remarque du post) et donc, pourquoi ne pas faire une structure de donner ? dans un premier temp tu défini les informations dans un header ensuite, tu n'a plus cas modifier PlayerAnimationSetting en pointeur et charger les informations par exemple a partir d'un xml ... et c'est plus facile a lire Code c++ :et donc: Code c++ :bref @animation_bind_idle ne me semble pas tout à fait juste pour les raison évoquer dans mon précédent poste, que faire si une autre touche est toujours active ? pour @animation_bind_ended donc je reviens à IAnimationEndCallBack, pas sur de l'utilité de setLoopMode(false) ici, à tester sens du coup avec IAnimationEndCallBack cette fonction est inutile tout comme le comptage des frames @frameEnCour et (NodePlayer->getFrameNr())> (new_anim_end - ANIM_OFFSET), ... etc Code c++ :pour @animation_bind_idle ça devient juste: Code c++ :qui doit probablement pouvoir être fusioné avec @animation_bind
pour la dernière fonctions il suffi de remplacer ... Code c++ :a noter qu'il y a equivalence entre les etats et les animation, on pourrais n'en garder qu'un ST_GIVE_5 == EAT_GIVE, ... etc je te laisse méditer sur cela cordialemnt Magun |
| 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 161 invités en ligne membre en ligne: - RSS Feed |