Bonjour,
Je travaille en ce moment sur un petit moteur physique basée sur les impulses (merci les tutos et présentations d'Erin Catto).
Tout fonctionne très bien, mais je ne sais pas comment intégrer une classes 'PhysicsCharacter' à mon moteur..
Pour le moment, j'ai essayé de faire dériver ma classe de Body, et de la considérer comme un corps régulier, de façon à utiliser tous le système de collisions et d'impulses déjà en place.
J'ai essayé de gérer la course de différentes manières:
- j'ai d'abord simplement modifié la vitesse du joueur, ça fonctionne très bien, mais la modification ne prends en compte aucune sorte de "force" du joueur, c'est à dire qu'il peut monter des murs presque verticaux, il ne glisse pas sur les sols glissant, et il peut pousser des caisses de plusieurs tonnes comme de simples allumettes...
- ensuite, j'ai essayé d'appliquer une accélération proportionnelle à la masse du joueur, et à la différence entre la vitesse actuelle du joueur, et la vitesse cible. Dans ce cas, le comportement était pas mal vis à vis de l’interaction avec les autres bodies, mais la marche était bizarre, le joueur "met du temps" à accélérer, ce qui donne l'impression d'être dans une voiture...
- finalement, j'ai essayé d'ajouter une contrainte de position au joueur, cella ne fonctionne pas du tout lors de la collision avec un mur puiseque le corps rebondi...
Voilà tous mes essais, j'ai aussi regardé les moteurs jBullet et ode4j, ainsi que jBox2D (je code en java). Je n'ai vu que Bullet qui gérait les personnages, et il les gère à part du reste, je ne vois donc pas comment on peut faire en sorte qu'un joueur pousse un caisse, ou glisse sur de la glace.
Mytrill.
Partager