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.
Jawaban:
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