Estou trabalhando em um jogo de plataformas em que eu gostaria de poder mover ou copiar corpos entre vários Box2D b2Worlds. O desejo surgiu três vezes agora - mover objetos entre documentos no meu editor, mover o jogador entre os níveis no jogo normal e dar ao jogador uma prévia de um projétil não trivial que ele possa disparar no jogo, o que parece ser com mais precisão, simulando o mundo por alguns segundos à frente.
Ele parece que eu posso fazer um mundo paralelo ao "longo caminho" - para cada corpo no mundo, copiar parte de trás dados do corpo em um def e re-criá-lo, em seguida, copie a massa sobre ele, da mesma forma, em seguida, fazer o o mesmo para juntas; redefina todas as velocidades; e se for uma "mudança" em vez de uma "cópia", exclua a original.
Eu queria saber se alguém já escreveu esse código (e se sim, era realmente um design viável ou não?), Ou se o Box2D tem alguma possibilidade de fazer isso dentro de sua API que eu estou sentindo falta.
Respostas:
Obrigado por me lembrar sobre isso.
A resposta é não, você não pode fazer isso no estoque Box2D . As juntas não têm acessadores suficientes para recuperar um JointDef correto. Você pode defender corpos simples, mas nada articulado, e os corpos simples geralmente são triviais o suficiente para que você não precise fazer uma cópia do mundo para prever seu movimento com precisão.
fonte