Comment puis-je copier ou recalculer les définitions d'un b2World entier?


8

Je travaille sur un jeu de plateforme où j'aimerais pouvoir déplacer ou copier des corps entre plusieurs Box2D b2Worlds. Le désir est apparu trois fois maintenant - déplacer des objets entre les documents dans mon éditeur, déplacer le joueur entre les niveaux dans le jeu normal et donner au joueur un aperçu d'un projectile non trivial qu'il peut tirer dans le jeu, ce qui semble être le plus précisément possible en simulant le monde pendant quelques secondes à l'avance.

Il semble que je puisse faire un monde parallèle sur le "long chemin" - pour chaque corps dans le monde, recopiez les données du corps dans une définition et recréez-les, puis copiez les appareils dessus de la même manière, puis faites le idem pour les articulations; réinitialiser toutes les vitesses; et s'il s'agit d'un "déplacement" plutôt que d'une "copie", supprimez l'original.

Je me demandais si quelqu'un avait déjà écrit ce code (et si oui, était-ce réellement une conception réalisable ou non?), Ou si Box2D a une certaine possibilité de le faire dans son API, ce qui me manque.

c++  physics  box2d 

Veuillez modifier votre publication pour qu'elle soit une question.
au

2
@ Pavel Il pose effectivement une question même s'il lui manque un point d'interrogation.
Jesse Dorsey

Au moins pour moi, ce n'était pas clair ce qu'il demandait.
topright

"si quelqu'un a déjà écrit ce code" Quelqu'un peut répondre "Oui" à la question de Joe Wreschnig et ce sera une réponse légale. Mais je suppose qu'il ne l'appréciera pas.
au

2
@ Pavel Oui, je suis sûr qu'il s'attendait à ce que quelqu'un explique ce qui en a fait un design réalisable ou pas même s'il ne l'avait pas demandé explicitement. En tant que réponse de "Oui", il y aurait plus que probable un vote négatif. De plus, être mesquin n’aide personne.
Jesse Dorsey

Réponses:


1

Merci de me l'avoir rappelé.

La réponse est non, vous ne pouvez pas le faire en stock Box2D . Les joints n'ont pas assez d'accesseurs pour récupérer un JointDef correct. Vous pouvez sauvegarder des corps simples, mais rien d'articulé, et les corps simples sont généralement assez triviaux pour que vous n'ayez pas besoin de faire une copie du monde pour prédire leur mouvement avec précision de toute façon.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.