2009-11-28 5 views
2

J'ai une question semblable à http://farseerphysics.codeplex.com/Thread/View.aspx?ThreadId=72364Farseer Physique XNA Geom « Tripping »

J'ai un joueur de rectangle geom, et beaucoup de tuiles geoms rectangle alignés à côté de l'autre.

Occasionnellement, lorsque le géom joueur se croise entre eux, il semble s'arrêter sur les coins de la géomére des tuiles et, par conséquent, se retourner.

Même en basculant le moment d'inertie à l'infini, ce qui empêche la rotation, le géomètre du joueur «saute» lorsqu'il coince le bord.

Voici une capture d'écran des geoms tripping image http://notspike.com/PrototypeG/trip.png

Y at-il correctif pour cela? J'ai essayé les forums Farseer mais il semble assez inactif

Voici un lien vers une vidéo en utilisant un geom cercle pour le joueur

http://www.notspike.com/PrototypeG/trip.avi

+0

Je ne suis pas sûr de ce que les formes soutiennent, mais solution évidente consiste à utiliser un rectangle arrondi pour le joueur. – Martin

+0

Bonjour Martin, j'ai essayé d'utiliser un cercle pour ça et ça trébuche toujours, je n'arrive pas à comprendre pourquoi. – Tablet

Répondre

0

Je vous suggère d'éviter l'utilisation de petits carreaux placés côte à côte pour la géométrie de collision du niveau. Par exemple, bien qu'il soit clair que vous utilisez des tuiles, le "plancher" de la vidéo serait mieux décrit comme un long rectangle contigu. De cette façon, vous n'avez pas ce problème du tout ... le calcul en virgule flottante est déjà assez imprécis et la géométrie de collision en mosaïque demande juste que ça se passe mal :-)

+0

Terminé l'écriture d'un algorithme de fusion de géométrie pour les fusionner pour les cartes «finalisées» qui seraient déployées. – Tablet

0

Je l'ai déjà fait quand ma Les formes sont assez petites ou les mouvements sont assez rapides pour que l'intervalle entre les calculs de la physique soit suffisant pour permettre aux objets de se chevaucher avant que la détection de collision entre en jeu.