Historique des modifications - Message

Message #11631

Sujet: Système d'animation d'irrlicht


Type Date Auteur Contenu
Création du message 10-06-2015 09:06:53 Magun
Salut !

j'ai déjà pas mal réfléchie a ce problème
dans ton cas je pensse que tu as plus de mal à harmonisé ton code et à le divisé
après évidemment ça dépends de t'est contraintes

si j'ai bien comprit tu anime chaque bonnes "manuelement" dans une grosse classe ?
pourquoi ne pas commencer par splitter ton code ?

Code c++ :


  class AnimationBinder
  {
        public:
            virtual void anim(ISkinnedMesh*) = 0;
  };
  class CustomManagerAnimation
  {
        public:
            CustomManagerAnimation()
            {
                upper.push_back(FollowCusorToHeadAnimation);
                middle.push_back(AttackAnimation);
                middle.push_back(UseObjectAnimation);
                lower.push_back(RunAnimation);
                lower.push_back(JumpAnimation);
                lower.push_back(CrouchAnimation);
                lower.push_back(IdleAnimation);
                ....
            }
            ...
            setLowerAnimation(int);
            ...
            void anim(ISkinnedMesh *a)
            {
                upper[upper_anim].anim(a);
                middle[middle_anim].anim(a);
                lowerlower[lower_anim].anim(a);
            }
        private:
            irr::core::array<AnimationBinder> upper;
            irr::core::array<AnimationBinder> middle;
            irr::core::array<AnimationBinder> lower;
            ...
  };


tu ne devraient avoir beusoin de ne distinguer que 3 animation simultanément je suppose
la tête qui tourne, une action, et le déplacement et aucun des trois ne devraient intéragir sur des bonnes d'une autres animations ?
au quelle cas tu devras peut-être faire un petit calcule ( vector3d<T>::getInterpolated )
ça te permetrais de réutiliser un peut mieux le code

du coup plus tard tu pourras remplacer tes "AnimationBinder" pour un chargement externe
binder de façon partiel une animation md2 par exemple

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
232 invités en ligne
membre en ligne: -
RSS Feed