Estoy trabajando en un juego de plataformas donde me gustaría poder mover o copiar cuerpos entre múltiples Box2D b2Worlds. El deseo ha surgido tres veces ahora: mover objetos entre documentos en mi editor, mover al jugador entre niveles en el juego normal y darle al jugador una vista previa de un proyectil no trivial que pueden disparar en el juego, lo que parece ser hecho con mayor precisión simulando el mundo por unos segundos por delante.
Se parece que puedo hacer un mundo paralelo al "largo camino" - para cada cuerpo en el mundo, copie la parte trasera de datos cuerpo en una definición y re-crearlo, a continuación, copiar los accesorios en él de la misma manera, a continuación, hacer lo lo mismo para las articulaciones; restablecer todas las velocidades; y si se trata de un "movimiento" en lugar de una "copia", elimine el original.
Me preguntaba si alguien ya ha escrito este código (y si es así, ¿fue realmente un diseño viable o no?), O si Box2D tiene alguna capacidad para hacerlo dentro de su API que me falta.
Respuestas:
Gracias por recordarme esto.
La respuesta es no, no puede hacer esto en stock Box2D . Las articulaciones no tienen suficientes accesores para recuperar un JointDef correcto. Puede definir hacia atrás cuerpos simples, pero nada articulado, y los cuerpos simples son generalmente lo suficientemente triviales como para que no necesite hacer una copia del mundo para predecir su movimiento con precisión de todos modos.
fuente