Historique des modifications - Message

Message #4566

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


TypeDateAuteurContenu
Dernière modification03-10-2008 15:23:54tmyke

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 message03-10-2008 15:19:35tmyke

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

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