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.
Réponses:
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.
la source