#1 

20-01-2009 13:52:37

bubix
Membres
Date d'inscription:
Messages: 9
IP: 193.170.124.190
Courriel

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


#2 

20-01-2009 14:30:02

hardcpp
Membres
Avatar de hardcpp
Date d'inscription:
Messages: 229
IP: 86.196.119.95
Courriel

remplace ESNT_EMPTY par ESNT_ANY


Hors ligne


#3 

20-01-2009 16:07:56

bubix
Membres
Date d'inscription:
Messages: 9
IP: 193.170.135.27
Courriel

Salut hardcpp,

Alors j'ai essayé cela:

SDevice::GetInstance()->getSceneManager()->getSceneNodesFromType(irr::scene::ESNT_ANY,list);

Erreur de compilation. Il ne trouve pas le type ESNT_ANY. J'ai la version 1.4-2 de Irrlicht!


Hors ligne


#4 

20-01-2009 18:58:21

johnplayer
Membres
Avatar de johnplayer
Date d'inscription:
Messages: 431
IP: 83.198.225.71
Courriel

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?


core i7 4970K @ 4GHz - 32GB ddr3 19200(2400MHz) - ssd samsung 840 evo 250GB - GTX1080Ti (4K) - Cooler master storm stryker blanc.
"L'alcool, c'est comme Activia, c'est actif à l'intérieur et ça se voit à l'extérieur."

Hors ligne


#5 

20-01-2009 19:40:56

bubix
Membres
Date d'inscription:
Messages: 9
IP: 193.170.135.27
Courriel

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


#6 

21-01-2009 08:13:03

johnplayer
Membres
Avatar de johnplayer
Date d'inscription:
Messages: 431
IP: 83.198.225.71
Courriel

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/namespaceirr_1_1scene.html#cad3d7ef92a9807d391ba29120f3b7bd

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.


core i7 4970K @ 4GHz - 32GB ddr3 19200(2400MHz) - ssd samsung 840 evo 250GB - GTX1080Ti (4K) - Cooler master storm stryker blanc.
"L'alcool, c'est comme Activia, c'est actif à l'intérieur et ça se voit à l'extérieur."

Hors ligne


#7 

21-01-2009 10:25:41

hardcpp
Membres
Avatar de hardcpp
Date d'inscription:
Messages: 229
IP: 86.196.52.86
Courriel

ou passe a la v1.5 de irrlicht


Hors ligne


#8 

23-01-2009 09:08:29

bubix
Membres
Date d'inscription:
Messages: 9
IP: 193.170.124.190
Courriel

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


#9 

23-01-2009 09:21:57

johnplayer
Membres
Avatar de johnplayer
Date d'inscription:
Messages: 431
IP: 83.198.225.71
Courriel

Sinon ne serait-il pas mieux d'utiliser les ID des nodes?


core i7 4970K @ 4GHz - 32GB ddr3 19200(2400MHz) - ssd samsung 840 evo 250GB - GTX1080Ti (4K) - Cooler master storm stryker blanc.
"L'alcool, c'est comme Activia, c'est actif à l'intérieur et ça se voit à l'extérieur."

Hors ligne


#10 

23-01-2009 13:15:21

bubix
Membres
Date d'inscription:
Messages: 9
IP: 193.170.135.34
Courriel

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


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