#0 

20-01-2009 14:52:37

bubix
Petit nouveau
Date d'inscription: 12-12-2008
Messages: 9

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


#1 

20-01-2009 15:30:02

hardcpp
Abonné
Date d'inscription: 26-04-2008
Messages: 229

remplace ESNT_EMPTY par ESNT_ANY

Hors ligne


#2 

20-01-2009 17:07:56

bubix
Petit nouveau
Date d'inscription: 12-12-2008
Messages: 9

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


#3 

20-01-2009 19:58:21

johnplayer
Habitué
Date d'inscription: 30-09-2007
Messages: 431

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


#4 

20-01-2009 20:40:56

bubix
Petit nouveau
Date d'inscription: 12-12-2008
Messages: 9

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


#5 

21-01-2009 09:13:03

johnplayer
Habitué
Date d'inscription: 30-09-2007
Messages: 431

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:

Code:

// 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:

Code:

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


#6 

21-01-2009 11:25:41

hardcpp
Abonné
Date d'inscription: 26-04-2008
Messages: 229

ou passe a la v1.5 de irrlicht

Hors ligne


#7 

23-01-2009 10:08:29

bubix
Petit nouveau
Date d'inscription: 12-12-2008
Messages: 9

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


#8 

23-01-2009 10:21:57

johnplayer
Habitué
Date d'inscription: 30-09-2007
Messages: 431

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


#9 

23-01-2009 14:15:21

bubix
Petit nouveau
Date d'inscription: 12-12-2008
Messages: 9

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é
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
882 membres
1429 sujets
11119 messages
Dernier membre inscrit: LiseBuisson96
70 invités en ligne
Aucun membre connecté
RSS Feed