Historique des modifications - Message

Message #4566

Sujet: Créer une class perso héritée de IAnimatedMeshSceneNode


Type Date Auteur Contenu
Dernière modification 03-10-2008 15:23:54 tmyke

derrecks Ecris:

mon "blocus" se trouve plus simplement dans le fait que jusqu'a aujourd'hui je m'étais contenté d'utiliser les classes par défaut des bibliothèques, sans les modifier (sauf pour Qt), et que mes connaissances en la gestion de classes sont plutot basiques, il s'agit simplement d'un problême d'implémentation, je ne sais pas comment faire pour implémenter ma classe, voir la créer de manière juste, ou encore comment bien partir.

effectivement, c'est plus un soucis d'implémentation, car c'est en fait relativement simple, tu est d'ailleurs très proche de la solution.

tu peux ecrire donc sans problème :
class CFPSAnimatedNode : public IAnimatedMeshSceneNode
{

 public:
  CFPSAnimatedNode(ISceneNode* parent, ISceneManager* mgr, s32 id,
            const core::vector3df& position = core::vector3df(0,0,0),
            const core::vector3df& rotation = core::vector3df(0,0,0),
            const core::vector3df& scale = core::vector3df(1.0f, 1.0f, 1.0f))
            : IAnimatedMeshSceneNode(parent, mgr, id, position, rotation, scale) {};

  void diminueVie();

  int num_vie;
};

et dans le code par exemple, il suffit d'ecrire:
	CFPSAnimatedNode* node = 0;

par exemple à la place de
 scene::IAnimatedMeshSceneNode* node = 0;

par contre, dans le reste du code il ne faut pas oublier l'adaptation du pointeur,
et ecrire ceci:
		node = (CFPSAnimatedNode*) smgr->addAnimatedMeshSceneNode(faerie);

et donc en final, si tu ecris dans un endroit de ton code la sequence que tu donne en exemple
dans ton dernier message:
if (selectedSceneNode)
          {              selectedSceneNode->setMaterialFlag(video::EMF_LIGHTING, false);
                        selectedSceneNode->diminueVie();
           }

alors cela fonctionne sans soucis
wink
Création du message 03-10-2008 15:19:35 tmyke

derrecks Ecris:

mon "blocus" se trouve plus simplement dans le fait que jusqu'a aujourd'hui je m'étais contenté d'utiliser les classes par défaut des bibliothèques, sans les modifier (sauf pour Qt), et que mes connaissances en la gestion de classes sont plutot basiques, il s'agit simplement d'un problême d'implémentation, je ne sais pas comment faire pour implémenter ma classe, voir la créer de manière juste, ou encore comment bien partir.

effectivement, c'est plus un soucis d'implémentation, car c'est en fait relativement simple, tu est d'ailleurs très proche de la solution.

tu peux ecrire donc sans problème :
class CFPSAnimatedNode : public IAnimatedMeshSceneNode
{

 public:
  CFPSAnimatedNode(ISceneNode* parent, ISceneManager* mgr, s32 id,
            const core::vector3df& position = core::vector3df(0,0,0),
            const core::vector3df& rotation = core::vector3df(0,0,0),
            const core::vector3df& scale = core::vector3df(1.0f, 1.0f, 1.0f))
            : IAnimatedMeshSceneNode(parent, mgr, id, position, rotation, scale) {};

  void diminueVie();

  int num_vie;
};

et dans le code par exemple, il suffit d'ecrire:
	CFPSAnimatedNode* node = 0;

par exemple à la place de
 scene::IAnimatedMeshSceneNode* node = 0;

par contre, dans le reste du code il ne faut pas oublier l'adaptation du pointeur,
et ecrire ceci:
		node = (CFPSAnimatedNode*) smgr->addAnimatedMeshSceneNode(faerie);

et donc en final, si tu ecris dans un endroit de ton code la sequence que tu donne en exemple
dans ton dernier message:
if (selectedSceneNode)
          {              selectedSceneNode->setMaterialFlag(video::EMF_LIGHTING, false);
                        selectedSceneNode->diminueVie();
           }

alors cela fonctionne sans soucis
wink

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