Bonjour, j'ai déjà travaillé avec Newton et j'aimerais passer à ODE, mais mes premiers essai ne sont pas vraiment concluant, voila mon code:
Initialisation:
Boucle:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 world=dWorldCreate(); dWorldSetGravity(world, 0.0f, -9.81f, 0.0f); Space = dHashSpaceCreate(0); sol = dCreatePlane (Space,0,1,0,0); // on crée le sol dMass m; // le cube dMassSetBox (&m,1,1,1,1); dMassAdjust(&m,10.2); bodycube = dBodyCreate(world); // on crée le cube dans notre monde dBodySetMass(bodycube,&m); // geomcube = dCreateBox(Space,5,10,5); dGeomSetBody(geomcube,bodycube); dGeomSetPosition(geomcube,0,30,0); //
Et voila le résultat: Sur youtube
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 dSpaceCollide(Space,0,&nearCallback); // teste les collisions entre les objets dWorldQuickStep(world,0.04); // a chaque frame, calcule la nouvelle position des objets
Bon j'ai attaché ça à un personnage car je n'avais que ça sous la main pour tester mais c'est un cube, du moins un parallélépipède.
Est-ce que j'ai oublié quelque chose parceque il rebondi toujours et sa rotation accélère alors qu'il ne touche pas le sol, c'est assez bisare.
Merci d'avance.
Partager