Historique des modifications - Message

Message #11655

Sujet: Système d'animation d'irrlicht


Type Date Auteur Contenu
Création du message 14-06-2015 12:13:41 Magun
les variables globales c'est mal, de mon point de vue

tu peut l'écrire de plusieurs façons

Code c++ :


class Something
{
    public:
        Something(int _start, int _end, bool loop = false)
          : start(_start), end(_end)
        {
        }

        Something(int start, int end, bool loop = false)
        {
            this->start = start;
            this->end = end;
        }

        Something(int _start, int _end, bool loop = false)
        {
            start = _start;
            end = _end;
        }
    private:
        int start, end;
};

//et tu l'utilise comme ça ...
Something *tmp = new Something(0, 0); // loop = false
Something *tmp2 = new Something(0, 0, true); // loop = true

la premiere façon permet au compilateur d'optimiser un peut
les deux suivantes sont equivalentes, perso je n'aime pas passer par this
mais c'est peut-être plus explicite si tu commence

par contre c'est a titre d'exmple, tu ne peut évidement avoire plusieurs constructeurs avec les mêmes parametres (et valeurs par default inclue)

par template ça donnerais ceci

Code c++ :

template<int priority, int start, int end, bool loop = false>
class GenericAnimation : public 
{
    public:
      virtual void bind()
      {
           NePlayer->setAnimationSpeed(ANIMATION_SPEED);
           NePlayer->setLoopMode(loop);
           NePlayer->setFrameLoop(start,end);
      }
      virtual void unbind()
      {
      }
      virtual int priority()
      {
          return priority
      }
    private:
};

// et utiliser comme ceci
AnimationBinder *tmp = new GenericAnimation<1, 0, 80, true>();
AnimationBinder *tmp = new GenericAnimation<0, 0, 0>();


ça permet surtout d'optimiser un peut, puisque les valeurs sont connue à la compilations, et ne sont jamais stocker en mémoire l'or de l'execution
dans ton cas ce n'est probablement pas nécéssaire

smile

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
153 invités en ligne
membre en ligne: -
RSS Feed