Historique des modifications - Message

Message #4106

Sujet: probleme de colision


Type Date Auteur Contenu
Création du message 28-05-2008 16:54:44 lionelconvent
bonjour

voici mon code
je ne comprend pas pourquoi il ne marche pas ?

tout se lance, je vois mes 2 mesh mais malheureusement je passe à travers...
un tout grand merci d'avance

Lionel

#include <IRR/irrlicht.h>
#include <IRR/IMetaTriangleSelector.h> 
 
using namespace irr;

using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
 
int main(void)
{
 
  //Cette ligne va créer un contexte d'affichage OpenGL
  IrrlichtDevice *device = createDevice (video::EDT_OPENGL, core::dimension2d<s32>(800,600),32,false,true,false,0);
 
  //On associe un driver à la fenêtre
  IVideoDriver* driver = device->getVideoDriver ();
  //Et on crée un gestionnaire de scène (scenegraph)
  ISceneManager *scenegraph = device->getSceneManager ();



//scenegraph->loadScene("map5.irr");

IAnimatedMesh* mesh2 = scenegraph->getMesh("decor.tour_eiffel0.01.b3d");
IAnimatedMesh* mesh3 = scenegraph->getMesh("solmur.b3d");
ISceneNode* node2 = 0;
ISceneNode* node3 = 0;
	if (mesh2)
	{
		node2 = scenegraph->addOctTreeSceneNode(mesh2->getMesh(0));
		node2->setPosition(core::vector3df(100,0,100));
		node2->setMaterialTexture(0, driver->getTexture("sydney.bmp") );
		node2->setMaterialFlag(EMF_LIGHTING, false);
	}
	if (mesh3)
	{
		node3 = scenegraph->addOctTreeSceneNode(mesh3->getMesh(0));
		node3->setPosition(core::vector3df(0,0,100));
		node3->setMaterialTexture(0, driver->getTexture("sydney.bmp") );
		node3->setMaterialFlag(EMF_LIGHTING, false);
		node3->setScale(core::vector3df(10,10,10));		
	}	
	ITriangleSelector* selector = 0;
	ITriangleSelector* selector3 = 0;

		selector = scenegraph->createTriangleSelector(mesh2,node2);
		node2->setTriangleSelector(selector);

		selector3 = scenegraph->createTriangleSelector(mesh3,node3);			
		node3->setTriangleSelector(selector3);

		IMetaTriangleSelector* metaSelector = scenegraph->createMetaTriangleSelector();
		metaSelector->addTriangleSelector(selector);
		metaSelector->addTriangleSelector(selector3); 

ICameraSceneNode * camera1 = scenegraph->addCameraSceneNodeFPS(0,50.0f,60,-1,0,0,true);

if (camera1)
	{ 
		camera1->setPosition(core::vector3df(100,10,0));
		camera1->setRotation(core::vector3df(0,260.0f,0));
	}

device->getCursorControl()->setVisible(false);

		ISceneNodeAnimatorCollisionResponse* anim = scenegraph->createCollisionResponseAnimator(metaSelector, camera1, core::vector3df(5,5,5), core::vector3df(0,0,0), core::vector3df(0,50,0));
		metaSelector->drop();
		camera1->addAnimator(anim);
		anim->drop();


 while (device->run ())
      {
        //On indique qu'on démarre la scène
        driver->beginScene (true, true, video::SColor (1,255,255,255));
        //On calcule le rendu
        scenegraph->drawAll ();
        //On affiche le rendu à l'écran
        driver->endScene ();
     }
     
  //On libère la mémoire en détruisant le device
  device->drop ();
  return 0;
}

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