Historique des modifications - Message

Message #6188

Sujet: problem de collusion avec les scenes .irr


Type Date Auteur Contenu
Dernière modification 13-03-2009 10:43:04 sahlie1985
salut tous le monde je cherche vraiment une aide
pour mon projet en premier étape, j'utilise ce code :
video::IVideoDriver* driver = device->getVideoDriver();
smgr = device->getSceneManager ();
	//On charge la place
    scene::IAnimatedMesh *mesh = smgr->getMesh("media/placeFinale.obj");
    meshNode = smgr->addOctTreeSceneNode(mesh->getMesh(0));
    meshNode->setMaterialTexture(0,	driver->getTexture("media/placeFinale.png"));
    meshNode->setPosition(core::vector3df(0, 0, 0));
    meshNode->setScale(core::vector3df(5.0f, 5.0f, 5.0f));
    meshNode->setMaterialFlag(video::EMF_LIGHTING, true);
    meshNode->setMaterialFlag(video::EMF_ANISOTROPIC_FILTER,true);
    meshNode->getMaterial(0).EmissiveColor.set(255,255,255,255);
    meshNode->setMaterialType(video::EMT_SOLID);
 
    if(meshNode)
    {
        mapSelector = smgr->createOctTreeTriangleSelector(mesh->getMesh(0), meshNode);
        meshNode->setTriangleSelector(mapSelector);
        mapSelector->drop();
    }

mais désormer on doit utiliser des scenes de type .irr
smgr->loadScene("media/example.irr");

pour la collision on doit récupérer le sceneNode :
smgr->getSceneNodeFromType(scene::ESNT_MESH, meshNode);
	
	if(meshNode)
    {
        mapSelector = smgr->createOctTreeTriangleSelector(((scene::IAnimatedMesh*)meshNode)->getMesh(0), meshNode);
        meshNode->setTriangleSelector(mapSelector);
        mapSelector->drop();
    }

ce code ne provoque aucun erreur mais le collusion ne se fais pas, je pence que le probleme dans ce code, ce n'est pas dans la collision :
camera = sm->addCameraSceneNodeFPS(0,100.0f,20.0f, -1, keyMap, 9, true, 0.4f);
			camera->setPosition(core::vector3df(-17.0f, 6.0f, 26.0f));

			scene::ISceneNodeAnimatorCollisionResponse* collider =
				sm->createCollisionResponseAnimator(
				mapSelector, camera, core::vector3df(1, 1, 1),
				core::vector3df(0, -1, 0), core::vector3df(0, 4, 0));

			camera->addAnimator(collider);
			collider->drop();

si une personne connaît la solution ca serai vraiment énorme et gentil smile
je travailles avec visual C++ et irrlicht 1.4.2
Création du message 13-03-2009 10:41:47 sahlie1985
salut tous le monde je cherche vraiment une aide
pour mon projet en premier étape, j'utilise ce code :
video::IVideoDriver* driver = device->getVideoDriver();
smgr = device->getSceneManager ();
	//On charge la place
    scene::IAnimatedMesh *mesh = smgr->getMesh("media/placeFinale.obj");
    meshNode = smgr->addOctTreeSceneNode(mesh->getMesh(0));
    meshNode->setMaterialTexture(0,	driver->getTexture("media/placeFinale.png"));
    meshNode->setPosition(core::vector3df(0, 0, 0));
    meshNode->setScale(core::vector3df(5.0f, 5.0f, 5.0f));
    meshNode->setMaterialFlag(video::EMF_LIGHTING, true);
    meshNode->setMaterialFlag(video::EMF_ANISOTROPIC_FILTER,true);
    meshNode->getMaterial(0).EmissiveColor.set(255,255,255,255);
    meshNode->setMaterialType(video::EMT_SOLID);
 
    if(meshNode)
    {
        mapSelector = smgr->createOctTreeTriangleSelector(mesh->getMesh(0), meshNode);
        meshNode->setTriangleSelector(mapSelector);
        mapSelector->drop();
    }

mais désormer on doit utiliser des scenes de type .irr
smgr->loadScene("media/example.irr");

pour la collision on doit récupérer le sceneNode :
smgr->getSceneNodeFromType(scene::ESNT_MESH, meshNode);
	
	if(meshNode)
    {
        mapSelector = smgr->createOctTreeTriangleSelector(((scene::IAnimatedMesh*)meshNode)->getMesh(0), meshNode);
        meshNode->setTriangleSelector(mapSelector);
        mapSelector->drop();
    }

ce code ne provoque aucun erreur mais le collusion ne se fais pas, je pence que le probleme dans ce code, ce n'est pas dans la collision :
camera = sm->addCameraSceneNodeFPS(0,100.0f,20.0f, -1, keyMap, 9, true, 0.4f);
			camera->setPosition(core::vector3df(-17.0f, 6.0f, 26.0f));

			scene::ISceneNodeAnimatorCollisionResponse* collider =
				sm->createCollisionResponseAnimator(
				mapSelector, camera, core::vector3df(1, 1, 1),
				core::vector3df(0, -1, 0), core::vector3df(0, 4, 0));

			camera->addAnimator(collider);
			collider->drop();

si une personne connaît la solution ca serai vraiment énorme et gentil smile
je travailles avec visual C++ et irrlicht 1.4.2

Retour

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