Question

J'ai un problème similaire à http://farseerphysics.codeplex.com /Thread/View.aspx?ThreadId=72364

J'ai un géom de joueur rectangle et plusieurs géomètres de carreaux rectangle alignés les uns à côté des autres.

Parfois, lorsque le géom de joueur se croise entre eux, il semble se coincer dans les coins de la tuile et, par conséquent, faire une rotation.

Même lors du basculement du moment d'inertie à l'infini qui empêche la rotation, le géom du joueur "sautille". quand il coupe le bord.

Voici une capture d'écran de la image de déclenchement http://notspike.com/PrototypeG/trip. png

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

Voici un lien vers une vidéo utilisant un cercle géométrique pour le lecteur

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

Était-ce utile?

La solution

Je vous suggère d'éviter l'utilisation de petites tuiles placées les unes à côté des autres pour la géométrie de collision du niveau. Par exemple, bien que visuellement, il est clair que vous utilisez des carreaux, l’option "sol" de la vidéo serait le mieux décrit comme un long rectangle contigu. De cette façon, vous n’avez pas du tout ce problème ... Les calculs en virgule flottante sont déjà assez imprécis et la géométrie de collision en mosaïque ne fait que demander que cela se passe mal: -)

Autres conseils

Cela m'est déjà arrivé lorsque mes formes sont suffisamment petites ou que mes mouvements sont suffisamment rapides pour que l'intervalle entre les calculs de la physique soit "ticks". être suffisant pour permettre aux objets de se chevaucher avant que la détection de collision ne se déclenche.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top