Salut,
J'ai a nouveau un probleme avec ce code:
irr::core::array<irr::scene::ISceneNode*> list;
SDevice::GetInstance()->getSceneManager()->getSceneNodesFromType(ESNT_EMPTY,list);
Est-ce que quelqu'un sait pourquoi la methode getSceneNodesFromType() ne me rertourne rien (list tjs vide)? Quelles peuvent être les raisons?
Où je peux chercher pour résoudre ce problème?
Merci.
Salutations.
bubix
Hors ligne
remplace ESNT_EMPTY par ESNT_ANY
Hors ligne
Il faut mette une valeur de type ESCENE_NODE_TYPE selon le type de node que tu veux trouver. Et encore, il faut que le type que tu cherches existe au moins en un exemplaire. Car si tu mets getSceneNodesFromType(ESNT_LIGHT ,list) il faut que tu es créer un ILightSceneNode. Enfin, tu avais peut-etre compris mais on ne sait jamais. De plus, es-tu sur que list contient des valeurs adéquates?
Hors ligne
J'ai le message d'erreur suivant:
error C2275: 'irr::scene::ESCENE_NODE_TYPE' : illegal use of this type as an expression
Pour ce code:
SDevice::GetInstance()->getSceneManager()->getSceneNodesFromType(ESCENE_NODE_TYPE,list);
ou celui-là
SDevice::GetInstance()->getSceneManager()->getSceneNodesFromType(irr::scene::ESCENE_NODE_TYPE,list);
Hors ligne
ESCENE_NODE_TYPE n'est que le nom de l'énumération.
SDevice::GetInstance()->getSceneManager()->getSceneNodesFromType(ESCENE_NODE_TYPE,list); est erroné. Une variable de type ESCENE_NODE_TYPE peut prendre différentes valeur. Voici la page de la doc : http://irrlicht.sourceforge.net/docu/na … 9120f3b7bd
Exemple 1:
// tu déclares une variable ESCENE_NODE_TYPE node_type = ESNT_CAMERA ; // pour détecter le premier node de camera // ou ESCENE_NODE_TYPE node_type = ESNT_BILLBOARD ; // pour obtenir le premier IBillboardSceneNode // ect. //puis tu l'utilises : SDevice::GetInstance()->getSceneManager()->getSceneNodesFromType(node_type,list);
Exemple 2:
Tu utilise directement une valeur de l'énumération SDevice::GetInstance()->getSceneManager()->getSceneNodesFromType(ESNT_BILLBOARD,list); // pour obtenir le premier IBillboardSceneNode
J'espère avoir étais assez clair car je ne maîtrise pas le C++ et j'ai encore du mal avec le vocabulaire associés.
Par contre, pour les premiers essais, si j'étais toi je mettrais NULL à la place de list comme ça il scrutera l'intégralité des noeuds de ta scène. Ca permettra de n'avoir qu'une source de problème. Ensuite, lorsque ça marcheras tu pourras voir pour list.
Hors ligne
ou passe a la v1.5 de irrlicht
Hors ligne
Salut,
Alors j'aimerais seulement apporter encore quelques précisions au sujet de mon problème.
Je travail sur un projet dont le but est de développer un jeu. Pour cela on utilise irredit1.4 afin de créer l'environnement. Dans l'environnement on a ajoutté plusieurs "empty scenenode" à l'aide de l'icone qui figure dans la barre d'outils.
On a utilisé cette méthode pour avoir des points dans l'envirronement.
Apres cet ajout, dans le fichier .irr figure une ligne du genre pour chaque "empty scenenode":
<node type="empty">
<attributes>
<string name="emPNode" value="test" />
<int name="Id" value="0" />
...
Mais lorsque dans mon code C++ j'essaie de recuperer ces "empty scenenode":
getSceneNodesFromType(ESNT_EMPTY,list);
J'ai ma liste qui est tjs vide!
Dois-je modifier qqch dans le fichier .irr? Est-ce que la méthode utilisée est correcte?
Hors ligne
Sinon ne serait-il pas mieux d'utiliser les ID des nodes?
Hors ligne
Eureka...!!!
Problème: Communication dans le groupe de projet.
Solution: En mode debug...il ne trouvait pas le fichier .irr.
Dans les propriétés du projet:
champs debbuging ->Working directory->ajoutter le path du fichier Debug du projet VStudio.
Donc désolé pour toutes les bêtises que j'ai notèes.
Merci.
Salutations.
bubix
Hors ligne