Bagaimana saya bisa menyalin atau menghitung kembali definisi untuk seluruh b2World?

8

Saya sedang mengerjakan platformer di mana saya ingin dapat memindahkan atau menyalin tubuh antara beberapa Box2D b2Worlds. Keinginan telah muncul tiga kali sekarang - memindahkan objek di antara dokumen di editor saya, memindahkan pemain di antara level dalam permainan normal, dan memberi pemain pratinjau proyektil non-sepele yang dapat mereka tembak dalam permainan, yang tampaknya merupakan paling akurat dilakukan dengan mensimulasikan dunia selama beberapa detik ke depan.

Ini terlihat seperti aku bisa membuat dunia paralel "jalan panjang" - untuk setiap tubuh di dunia, menyalin kembali data yang tubuh menjadi def dan menciptakan-ulang itu, lalu copy perlengkapan di atasnya dengan cara yang sama, kemudian melakukan sama untuk sendi; mengatur ulang semua kecepatan; dan jika itu "bergerak" daripada "salin" hapus yang asli.

Saya bertanya-tanya apakah seseorang telah menulis kode ini (dan jika demikian, apakah ini benar-benar desain yang bisa diterapkan atau tidak?), Atau apakah Box2D memiliki kemampuan untuk melakukan ini dalam API-nya yang saya lewatkan.


sumber
Harap edit posting Anda menjadi pertanyaan.
topright
2
@Pavel Dia benar-benar mengajukan pertanyaan meskipun dia tidak memiliki tanda tanya.
Jesse Dorsey
Setidaknya bagi saya tidak jelas apa yang dia minta.
topright
"jika seseorang telah menulis kode ini" Seseorang dapat menjawab "Ya" untuk bertanya-tanya pada Joe Wreschnig dan itu akan menjadi jawaban yang sah. Tapi saya kira dia tidak akan menghargai itu.
topright
2
@Pavel Ya, saya yakin dia mengharapkan seseorang untuk menjelaskan apa yang membuatnya menjadi desain yang bisa diterapkan atau bahkan jika dia tidak memintanya secara eksplisit. Sebagai jawaban "Ya" akan diturunkan lebih dari kemungkinan. Juga, menjadi picik tidak membantu siapa pun.
Jesse Dorsey

Jawaban:

1

Terima kasih telah mengingatkan saya tentang ini.

Jawabannya, tidak, Anda tidak dapat melakukan ini dalam stok Box2D . Sendi tidak memiliki cukup aksesor untuk mendapatkan kembali JointDef yang benar. Anda dapat kembali-def-ify tubuh sederhana, tetapi tidak ada yang bersendi, dan tubuh sederhana biasanya cukup sepele Anda tidak perlu melakukan salinan dunia untuk memprediksi gerakan mereka dengan akurat pula.


sumber