Historique des modifications - Message

Message #6188

Sujet: problem de collusion avec les scenes .irr


TypeDateAuteurContenu
Dernière modification13-03-2009 10:43:04sahlie1985
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 gentilsmile
je travailles avec visual C++ et irrlicht 1.4.2
Création du message13-03-2009 10:41:47sahlie1985
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 gentilsmile
je travailles avec visual C++ et irrlicht 1.4.2

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
113 invités en ligne
membre en ligne: -
RSS Feed