Simuler un objet flottant sur l'eau

9

Je travaille sur un jeu de pêche de haut en bas. Je veux implémenter un peu de physique et de détection de collision concernant le bateau qui se déplace autour du lac. J'aimerais pouvoir mettre en œuvre la poussée du moteur principal ou du moteur de pêche à la traîne, l'effet du vent sur l'objet et la traînée de l'eau sur l'objet.

J'ai regardé le moteur physique du farseer, mais n'ayant aucune expérience de l'utilisation d'un moteur physique, je ne suis pas sûr que le farseer soit adapté à ce type de chose (la plupart des démos semblent être l'application de la gravité à une verticale modèle de type haut / bas).

Le moteur farseer conviendrait-il? ou un moteur différent conviendrait-il mieux?

Aaron M
la source

Réponses:

5

Je fais ce genre de chose avec une balle , mais la même technique pourrait être utilisée avec n'importe quel moteur physique. La flottabilité est modélisée en attachant des flotteurs imaginaires au corps qui appliquent simplement une force selon leur profondeur sous la surface en des points discrets.

Dans le pas de temps, chaque flotteur teste le niveau d'eau à leur position, puis applique une force au corps rigide du bateau à leur position par rapport au bateau. J'imagine chaque flotteur comme un cylindre toujours vertical, en tenant compte de l'orientation du bateau. La force est proportionnelle à la profondeur de leur immersion, jusqu'à un maximum défini par leur volume.

Pour le moment, le bateau n'a que 4 flotteurs - proue, poupe, bâbord et tribord. J'ai réglé manuellement leurs volumes pour fournir suffisamment de force pour contrer la gravité, puis ajuster les positions et les longueurs des cylindres pour modifier la façon dont le bateau se déplace. J'ai une vague idée de générer les flotteurs en emballant les cylindres dans le volume du corps rigide d'une manière ou d'une autre, mais c'est quelque chose pour l'avenir.

Une courte démo d'un bateau naviguant à travers les vagues est ici sur YouTube .

Rob Agar
la source
0

La physique Farseer prend en charge toutes sortes d'applications de force et d'intertie, donc ce ne serait pas un problème, je ne suis pas sûr à 100% si Farseer prend déjà en charge les corps fluides (pour l'eau), mais si cela est pris en charge, cela devrait être correct. (Notez également que Farseer est un moteur physique 2D)

Roy T.
la source
Je pense qu'ils ajoutent le support pour les fluides dans la prochaine version de Farseer (3.3)
brainydexter