J'ai un problème avec le Farseer Physics Engine, où dans un environnement carrelé, mon objet va parfois interagir avec les coins d'autres objets, même s'ils s'alignent parfaitement.
J'ai lu des gens suggérant que vous calculiez et créiez un objet plus grand, en utilisant Marching Squares ou quelque chose de similaire. Cependant, ce n'est pas une option, car j'aimerais que chaque carreau ait des qualités physiques différentes, comme une friction et une restitution différentes.
Ma question est, qu'est-ce qui en est exactement la cause, est-ce un problème de précision du flotteur ou autre chose? Et y a-t-il un moyen de le réparer, sans casser tout le moteur physique?
xna
physics
farseer-physics-engine
William Mariager
la source
la source
Réponses:
Farseer utilise un solveur itératif, donc lorsque votre roue commence à entrer en collision avec un autre rectangle à grande vitesse, vous verrez de temps en temps des bosses car c'est un "alignement parfait" pour nous, pas une simulation physique, avec des itérations des choses comme celles-ci vont ne soyez jamais "pixel-perfect".
Vous devrez convertir des rectangles en formes Edge / Loop, puis modéliser différentes qualités physiques avec des hacks comme la création de limites de tuiles artificielles, puis la modification des propriétés lorsque le personnage entre dans une zone de délimitation, mais toutes les qualités physiques ne peuvent pas être émulées de cette façon.
Tôt ou tard, vous finirez par écrire votre propre physique basée sur les tuiles au lieu de Farseer. Si votre jeu n'a pas beaucoup d'énigmes physiques complexes, il sera plus simple d'abandonner complètement Farseer et de lancer votre propre physique basée sur les tuiles.
la source
vous pouvez optimiser vos formes de collisions, cette scène peut se faire avec seulement quatre rectangles.
vous pouvez joindre des cases corrélatives pour en agrandir une.
cette vidéo le montre http://www.youtube.com/watch?v=eyhGckHgkkE
quand il ajoute des boîtes, vous pouvez voir un rectangle bleu clair avec la forme optimisée.
la source
Hmm ... Je soupçonne que cela pourrait avoir quelque chose à voir avec votre cercle et non avec les tuiles en dessous. Essayez de faire le sol à l'aide d'une seule coque et voyez si vous obtenez les mêmes résultats. Sinon, ce sont les tuiles comme vous le pensez. Si c'est le cas, votre cercle n'est pas aussi rond que vous pourriez le penser.
la source