Misalkan saya menggunakan sistem deteksi tabrakan diskrit sederhana di mana saya memindahkan semua objek kemudian memeriksa tabrakan. Saya ingin benda bertabrakan dipisahkan (tentu saja) dan diberi kecepatan respons yang sesuai (bouncing, slide, stop, dll.).
Ketika saya memiliki sepasang objek bertabrakan, bagaimana cara memisahkannya tanpa berakhir dengan satu atau keduanya bertabrakan dengan objek lain?
Satu-satunya cara agar hal ini tidak terjadi adalah mencegah penetrasi. Sebelum Anda memindahkan objek, Anda memastikan itu adalah langkah legal. Perhatikan bahwa ini berarti Anda harus memindahkan objek Anda satu per satu untuk menghindari kasus dua objek bergerak satu sama lain.
Jika tidak ada penetrasi yang terjadi, Anda tidak perlu mengatur ulang posisi apa pun sehingga Anda tidak akan memicu penetrasi sekunder.
sumber
Apa yang biasanya saya lakukan adalah sebagai berikut:
Ketika Anda memisahkan objek dan berakhir dengan lebih banyak tabrakan, Anda hanya mengulanginya lagi, sampai jumlah langkah maksimum tercapai atau objek menembus kurang dari ambang yang telah ditentukan.
sumber