Bagaimana cara mensimulasikan bulu jatuh di box2d?

10

Saya bekerja dengan AndEngine dengan ekstensi Box2d, tetapi jawaban umum atau ide konsep akan dihargai juga.

Saya memiliki benda seperti bulu di dunia tampilan sisi 2D yang saya ingin menjadi bagian dari simulasi fisika. Saya menggunakan redaman linear untuk membuat "bulu" jatuh perlahan. Ini mungkin bukan ide yang baik, mungkin saya lebih suka menerapkan kekuatan dalam setiap pembaruan, tetapi bagaimanapun, ini bekerja dan itu membuat objek terlihat "ringan" dan rasanya seperti ada udara dengan hambatan.

Sekarang bagaimana saya bisa membuat benda-benda itu benar-benar terlihat seperti bulu yang jatuh di udara?

Secara khusus saya mencari dua jenis objek: Panjang dengan kepadatan rendah, yang seharusnya bergerak ke bawah dalam gerakan ayunan lambat dan objek persegi yang hanya akan secara acak mengubah lintasan. Akan lebih bagus jika ini bisa menjadi satu simulasi dan panjang akan menjadi parameter - semakin lama objeknya, semakin besar ayunannya. Saat ini saya ingin mensimulasikan bulu, daun dan kepingan salju di dunia kartun.

Jalur benda jatuh

MartinTeeVarga
sumber
2
Bagaimana dengan tangkapan layar atau sketsa konsep atau semacamnya? Lagi pula, ada banyak hal berbeda yang dapat Anda anggap sebagai bulu, dan saya akan mengatakan sebagian besar akan berperilaku berbeda berdasarkan situasi Anda.
Mario
Menambahkan lebih banyak informasi dan gambar.
MartinTeeVarga

Jawaban:

6

Sama seperti pendaratan di bulan, Anda harus memalsukannya . Fisika autorotation yang disebabkan oleh flutter, tumble dan vortex kompleks. Ada makalah tentang simulasi efek ini , dan mereka menghasilkan beberapa animasi Java yang indah .

Tapi, saya bahkan akan melangkah lebih jauh dalam kepalsuan Anda dan menerapkan sesuatu seperti gelombang sinus yang tumbuh untuk menghidupkan gerakan.

masukkan deskripsi gambar di sini

Jelas Anda ingin mengubah nilai awal, laju peningkatan amplitudo dan frekuensi independen hingga Anda mendapatkan sesuatu yang terlihat lebih dekat dengan apa yang Anda inginkan. Anda ingin beberapa keacakan untuk membuatnya menarik. Selain itu, seperti yang ditunjukkan contoh Anda, benda yang sangat ringan dengan luas permukaan tinggi sebenarnya bisa naik di dekat tepi gelombangnya. Jadi, gelombang di atas amplitudo tertentu harus mulai memperhitungkan nilai sweeping, dengan nilai maksimal kecil.

Semakin sedikit massa dan lebih banyak area permukaan yang dimiliki objek, semakin Anda meningkatkan amplitudo dan frekuensi gelombang sinus. Semakin banyak massa dan semakin sedikit luas permukaan akan menghasilkan penurunan amplitudo dan frekuensi.

MichaelHouse
sumber
3
** Konspirator **
Mikolaj Marcisz
Ok, jadi saya dapat memiliki dua fungsi, menumbuhkan gelombang sinus yang akan mengontrol gerakan horizontal, kemudian beberapa fungsi yang akan mengontrol gerakan vertikal dan mungkin akan tergantung pada seberapa jauh dari pusat objek itu dan akan memiliki beberapa tutup yang akan memecah gerakan dan kirim kembali ... Jika saya mengetahui fungsi gabungan seperti itu yang akan memberi saya kekuatan, bagaimana saya menerapkan kekuatan? Di setiap centang mesin sedikit berdasarkan waktu yang berlalu? Saya belum benar-benar bekerja dengan box2d sebelumnya.
MartinTeeVarga
Kedengarannya seperti itu akan bekerja dengan baik, membiarkan gravitasi mengendalikan sisanya. Ada beberapa cara berbeda untuk menangani gaya. Kemungkinan itu akan di setiap centang mesin, berdasarkan waktu yang telah berlalu seperti yang Anda katakan. Mereka akan menjadi kekuatan impuls, yang berarti sesaat untuk kerangka itu. Lihat pertanyaan ini untuk mempelajari lebih lanjut (ini sama meskipun Anda tidak menggunakan Cocos2D seperti dalam pertanyaan).
MichaelHouse