Historique des modifications - Message

Message #8283

Sujet: Collision avec un plan


Type Date Auteur Contenu
Dernière modification 11-06-2010 11:30:57 nabouill
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 message 11-06-2010 11:28:59 nabouill
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

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