#0 

14-02-2011 01:13:09

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
Site web

Bonjour je viens de créer un fichier .irr avec irredit, et je voudrais savoir s'il est possible d'utiliser cette scene comme un mesh ordinaire.

Par exemple j'ai un mesh (soleil.irr), je le charge avec irrlicht comme sa :

sceneManager->loadScene("soleil.irr");

Sauf que quand je le charge comme sa je ne peut pas l'utiliser comme un mesh normal, je peut pas par exemple augmenter la taille du mesh "soleil" parce que se n'est pas comme une variable, donc j'ai tenter :

irr::scene::ISceneNode *soleil = sceneManager->loadScene("soleil.irr");

Sauf que sa marque "impossible de convertir SceneNode en Bool", alors qu'elle qu'un à une solution pour utiliser un mesh comme une variable normal d'irrlicht ?
Oui je sais c'est difficile à expliquer, mes si qu'elle qu'un pourrais m'aider....

Merci de me répondre.

Dernière modification par mmorpglefilm (14-02-2011 01:13:52)

Hors ligne


#1 

14-02-2011 10:26:19

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

tuto
http://irrlicht.sourceforge.net/docu/example015.html

récupération des nodes (tiré du tuto)

Code:

        core::array<scene::ISceneNode *> nodes;
        smgr->getSceneNodesFromType(scene::ESNT_ANY, nodes); // Find all nodes

        for (u32 i=0; i < nodes.size(); ++i)
        {
                scene::ISceneNode * node = nodes[i];
                scene::ITriangleSelector * selector = 0;

                switch(node->getType())
                {
                case scene::ESNT_CUBE:
                case scene::ESNT_ANIMATED_MESH:
                        // Because the selector won't animate with the mesh,
                        // and is only being used for camera collision, we'll just use an approximate
                        // bounding box instead of ((scene::IAnimatedMeshSceneNode*)node)->getMesh(0)
                        selector = smgr->createTriangleSelectorFromBoundingBox(node);
                break;

                case scene::ESNT_MESH:
                case scene::ESNT_SPHERE: // Derived from ImeshSceneNode
                        selector = smgr->createTriangleSelector(((scene::ImeshSceneNode*)node)->getMesh(), node);
                        break;

                case scene::ESNT_TERRAIN:
                        selector = smgr->createTerrainTriangleSelector((scene::ITerrainSceneNode*)node);
                        break;

                case scene::ESNT_OCTREE:
                        selector = smgr->createOctreeTriangleSelector(((scene::ImeshSceneNode*)node)->getMesh(), node);
                        break;

                default:
                        // Don't create a selector for this node type
                        break;
                }

                if(selector)
                {
                        // Add it to the meta selector, which will take a reference to it
                        meta->addTriangleSelector(selector);
                        // And drop my reference to it, so that the meta selector owns it.
                        selector->drop();
                }
        }

"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


#2 

14-02-2011 13:03:26

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
Site web

Oui je les déjà vue mes je ne comprend pas comment il peut associer la node aux fichier irr.

Hors ligne


#3 

14-02-2011 15:36:33

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

le fichier irr charge une scene de nodes. Tu les récupère ensuite avec le code ci-dessus.


"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


#4 

14-02-2011 15:59:16

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
Site web

A mes oui j'ai enfins compris, merci pour t'on aide.

Et attend : il faut créer un tableau de sceneNode (si j'ai compris le code), et pour par exemple je veux modifier la t'aille de chaque objet qu'il y a dans mon fichier irr je fais comme sa :

for (u32 i=0; i < nodes.size(); ++i)
{
      nodes[i]->setScale(irr::core::vector3df(10,10,10);
}

Le reste du code n'est juste là que pour créer un selector, si j'ai bien compris....

Hors ligne


#5 

14-02-2011 16:02:01

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

voilou wink


"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


#6 

14-02-2011 16:55:01

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
Site web

Et me revoilà avec mes question.......:

Je viens de tester le code est sa marche sauf que je suit en trins de créer un jeu dans l'espace, j'ai donc créer notre système solaire sur irredit, mes pour qu'il soit vraiment énorme je doit augmenter sa t'aille sur irrlicht et pas sur irrdit.

donc j'ai fais comme j'ai dit plus haut pour augmenter la t'aille des planètes sauf que se n'est que l'aure dimension qui augmente et pas l'eure position, donc j'ai tester :

irr::scene::ImeshSceneNode *soleil = nodes;

Mes on ne peut pas convertir un mesh en tableau, mes bon...tous sa pour dire : il y a t-il un moyen d'augmenter la t'aille de tous les objets du tableau en augmentent aussi l'eure position ?

Merci de bien vouloir me répondre.

Hors ligne


#7 

14-02-2011 17:01:36

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

Irredit ne peut pas modifier la taille ??


"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


#8 

14-02-2011 17:06:29

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
Site web

Si mes moi je doit créer des sphères de t'aille énorme pour représenter notre système solaire, et sur irrdit c'est très difficile de créer des chose énormes, alors il serait (je pense) plus simple de augmenter l'eure t'aille sur irrlicht.

Dernière modification par mmorpglefilm (14-02-2011 17:07:41)

Hors ligne


#9 

14-02-2011 17:25:54

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

tu fait des planetes toutes petites et très espacées sous irredit et tu les scale après wink


"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


#10 

14-02-2011 18:51:50

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
Site web

Hors ligne


#11 

19-02-2011 03:55:42

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
Site web

A par contre j'ai un autre problème qui est très enbétent :

Je viens de charger mon fichier .irr, je tiens à préciser que quand j'ai créer mon fichier j'ai juste placer des mesh, j'ai pas mit de camera.....et j'ai créer un petit vaisseau qui n'est pas visible bizarrement et une camera qui bug....

Pour le vaisseau je sais pas....on verras plus tard...mes pour la camera c'est un peut bizzar....:je ne peut pas faire bouger la camera avec la sourie, juste avec les touche directionnelle est je ne peut pas aller de haut en bas....c'est un peut comme une camera TrackBall.....sauf que moi j'ai créer une camera FPS !!!!

Si qu'elle qu'un pourrais m'aider sa serais très gentil, et si sa viens du fichier .irr je pense ne plus les utiliser, je pense que c'est plus facilement modifiable sur irrlicht, et si je veux que mon petit système interagis avec l’environnement c'est plus facile de le faire sur irrlicht que sur IrrEdit.

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
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
121 invités en ligne
Aucun membre connecté
RSS Feed