Historique des modifications - Message

Message #11631

Sujet: Système d'animation d'irrlicht


TypeDateAuteurContenu
Création du message10-06-2015 09:06:53Magun
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

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
67 invités en ligne
membre en ligne: -
RSS Feed