Mendapatkan cloud "pixel" 2D untuk mengikuti mouse

10

Saya sedang mengerjakan game 2D yang mencoba mendapatkan "cloud" dari beberapa ratus kubus atau disk kecil untuk mengikuti kursor mouse saya tanpa saling tumpang tindih.

Namun, menggunakan mesin fisika memperkenalkan kelesuan kinerja ketika jumlah cakram bertambah dan deteksi tabrakan umumnya miring.

Apakah ada cara mudah untuk mengoptimalkan mesin untuk hal semacam ini? Jika tidak, apakah saya lebih baik mematikan mesin dan menulis sendiri? (Mencengkeram sedotan di sini, tapi :) Apakah ada sumber daya atau contoh yang baik tentang bagaimana melakukan ini?

Autio
sumber

Jawaban:

13

Ya, menggunakan mesin fisika untuk itu akan sedikit berlebihan. Saya sarankan Anda menerapkan algoritma berkelompok. Dasar-dasarnya adalah:

  • Pemisahan: Steer untuk menghindari kerumunan kawanan domba lokal

  • Alignment: Arahkan ke arah rata-rata teman kawanan lokal

  • Kohesi: Steer untuk bergerak menuju posisi rata-rata teman kawanan lokal

Anda dapat melihatnya beraksi di sini dan mendapatkan beberapa detail penerapannya . Anda akan melakukan beberapa penyesuaian kecil untuk memasukkan gaya ke arah penunjuk tetikus.

MichaelHouse
sumber
1
Anda dapat menggunakan grid dinamis virtual atau partisi spasial lainnya untuk membuat berkelompok efisien jika Anda memiliki banyak boids yang tidak dapat Anda proses secara naif juga. Banyak cara untuk mengoptimalkan.
Sean Middleditch