Saya ingin membuat tali yang dapat bertabrakan dengan benda-benda seperti di video youtube berikut:
Saya berpikir bahwa Anda menerapkan integrasi verlet yang menggunakan poin dan menghubungkan titik-titik ini dengan garis. Saya mencoba mencari tahu jenis deteksi tabrakan yang akan Anda terapkan pada tali untuk mendapatkan efek dalam video.
Saya pikir Anda harus melakukan beberapa cd untuk setiap titik. Saya ingin menggunakan box2D, jadi saya bertanya-tanya apakah setiap titik akan bekerja dengan kaku? Nasihat apa pun akan dihargai.
collision-detection
box2d
rope-physics
Joey Green
sumber
sumber
Jawaban:
Karena Anda menggunakan Box2D, Anda bisa membuat serangkaian persegi panjang dan menggunakan sambungan Box2D untuk bergabung dengannya. Di sana Anda memiliki tali Anda.
Untuk menghindari tikungan dari tali yang bengkok, saya bisa membayangkan dua pilihan:
Peringatan: Saya belum pernah mencoba ini sendiri, tetapi saya gagal melihat bagaimana serangkaian persegi panjang yang bergabung dapat gagal ketika video yang Anda posting menampilkan secara praktis hal yang sama dalam penyamaran.
Sunting: Saya baru saja melihat PaulZ dan saya menyadari hal yang sama. Baca juga komentarnya tentang pertanyaan itu.
sumber
Google cepat melemparkan ini ke sini . Demo, deskripsi, dan kode (dalam Flash) menggunakan Box2D untuk mengimplementasikan tali sederhana. Tali bertabrakan dengan dirinya sendiri dan blok di bagian atas tempat kejadian.
sumber
Inilah yang akan saya lakukan, buat setiap titik pada garis menjadi lingkaran, buat cukup banyak poin yang tumpang tindih. Tether setiap titik ke tetangga itu, daripada tabrakan standar tether ini harus membuat poin tetap jarak yang tetap dari satu sama lain.
Saya tidak tahu Box2D, tapi saya kira fungsionalitas yang diperlukan ada di sana.
sumber
Awalnya Box2D memiliki demo jembatan tali yang terbuat dari kotak-kotak tipis yang bergabung dengan batasan point-to-point; itu akan menjadi tempat yang baik untuk memulai (saya tidak tahu apakah masih dikirimkan dengan demo itu, tetapi akan mudah untuk menciptakan kembali).
Cukup mudah untuk menerapkan tali sebagai partikel dengan kendala jarak terlepas dari simulator benda tegar (seperti yang Anda sebutkan, menggunakan integrasi Verlet dan skema penyelesaian kendala seperti yang dijelaskan dalam artikel ini: http://www.gamasutra.com/resource_guide/ 20030121 / jacobson_pfv.htm ), tetapi jika Anda ingin tubuh kaku bereaksi terhadap tali Anda (seperti dalam video, dengan kotak menggantung) maka itu menjadi jauh lebih rumit. Saya akan mulai dengan seperangkat alat yang komprehensif seperti Box2D dan bekerja mundur daripada mencoba dan membangun dari partikel.
sumber
Saya ingat permainan Allegro ini: Cupid , dari SpeedHack 2002. Ini berisi implementasi untuk tali yang bertabrakan dengan pemandangan. Lihat kelas PhysParticles dan HeartTrails di file heart_tails.cpp dalam kode sumbernya .
sumber