Historique des modifications - Message

Message #8283

Sujet: Collision avec un plan


TypeDateAuteurContenu
Dernière modification11-06-2010 11:30:57nabouill
salut, je ne voudrais pas te faire tout le code, mais c'est vrai qu'un exemple est souvent plus parlant.
Je vais donc te montrer un exemple d'une camera FPS qui collisione avec un plan:

Code c++ :


    //creation d'une camera FPS
    ICameraSceneNode* myCamera = sceneMgr->addCameraSceneNodeFPS(0, 100.0f, 0.02f, -1, keyMap, 4, false, 2.5f);
    myCamera->setPosition(vector3df(0,20,0));

    //creation d'un plan
    IAnimatedMeshSceneNode *myPlan = sceneMgr->addAnimatedMeshSceneNode(sceneMgr->getMesh("plan.3ds"));

    //creation d'un selecteur de triangle, il va "enregistré" les triangle de mon sceneNode
    ITriangleSelector * selecto = sceneMgr->createTriangleSelector(((scene::IAnimatedMeshSceneNode*)myPlan)->getMesh(), myPlan);

    //creation d'un animateur qui va gérer les collisions
    ISceneNodeAnimatorCollisionResponse *MyAnim = sceneMgr->createCollisionResponseAnimator(
                 selecto, //world
                 myCamera,//sceneNode
                 vector3df(1,1,1), //ellipsoidRadius
                 vector3df(0.0,-9.8,0.0),//gravity
                 vector3df(1,1,1));//ellipsoidTranslation
    //on applique cette animateur a notre camera
    myCamera->addAnimator(MyAnim);

    //on supprime les objets qui ne sont plus utilisé
    selecto->drop();
    MyAnim->drop();



Voici un petit exemple, en espérant qu'il t'aide a mieux comprendre

Bon courage
Création du message11-06-2010 11:28:59nabouill
salut, je ne voudrais pas te faire tout le code, mais c'est vrai qu'un exemple est souvent plus parlant.
Je vais donc te montrer un exemple d'une camera FPS qui collisione avec un plan:

Code c++ :


    //creation d'une camera FPS
    ICameraSceneNode* myCamera = sceneMgr->addCameraSceneNodeFPS(0, 100.0f, 0.02f, -1, keyMap, 4, false, 2.5f);
    myCamera->setPosition(vector3df(0,20,0));

    //creation d'un plan
    IAnimatedMeshSceneNode *myPlan = sceneMgr->addAnimatedMeshSceneNode(sceneMgr->getMesh("plan.3ds"));

    //creation d'un selecteur de triangle, il va "enregistré" les triangle de mon sceneNode
    ITriangleSelector * selecto = sceneMgr->createTriangleSelector(((scene::IAnimatedMeshSceneNode*)myPlan)->getMesh(), myPlan);

    //creation d'un animateur qui va gérer les collisions
    ISceneNodeAnimatorCollisionResponse *MyAnim = sceneMgr->createCollisionResponseAnimator(
                 selecto, //world
                 myCamera,//sceneNode
                 vector3df(1,1,1), //ellipsoidRadius
                 vector3df(0.0,-9.8,0.0),//gravity
                 vector3df(1,1,1));//ellipsoidTranslation
    //on applique cette animateur a notre camera
    myCamera->addAnimator(MyAnim);

    //on supprime les objets qui ne sont plus utilisé
    selecto->drop();
    MyAnim->drop();



Voici un petit exemple, en espérant qu'il t'aide a mieux comprendre

Bon courage

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