¿Cómo puedo copiar o volver a calcular definiciones para un b2World completo?


8

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.

c++  physics  box2d 

Edite su publicación para que sea una pregunta.
arriba

2
@Pavel Realmente hace una pregunta a pesar de que le falta un signo de interrogación.
Jesse Dorsey

Al menos para mí no estaba claro lo que estaba pidiendo.
arriba el

"si alguien ya ha escrito este código" Alguien puede responder "Sí" a la pregunta de Joe Wreschnig y será una respuesta legal. Pero supongo que no va a apreciar eso.
arriba

2
@Pavel Sí, estoy seguro de que esperaba que alguien explicara qué lo hizo un diseño viable o no, incluso si no lo solicitó explícitamente. Como respuesta de "Sí", se rechazaría más que probablemente. Además, ser mezquino no ayuda a nadie.
Jesse Dorsey

Respuestas:


1

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.