Saya baru-baru ini mulai merancang Game Engine menggunakan paradigma Entity System, yaitu memiliki entitas sebagai agregasi komponen, dan sistem yang mengimplementasikan game yang sebenarnya. Sedangkan saya telah mengalami kesulitan dalam berbagai aspek, yang paling saya perhatikan adalah abstraksi / modularitas dari berbagai Komponen / Sistem. Secara khusus, katakanlah saya Player
memiliki beberapa status animasi, mis. Walking
, Sleeping
, Jumping
, Dan satu jenis Opponent
entitas memiliki beberapa (tidak harus sama) negara juga, misalnya. Walking
, Hiding
dll.
Bagaimana saya harus mendesain mesin, sehingga menangani berbagai (animasi) keadaan masing-masing jenis entitas? Haruskah ada Sistem animasi yang berbeda untuk setiap jenis Entitas? Haruskah saya menggunakan tanda yang menandakan Sistem animasi untuk membuat entitas yang benar? Juga, dapatkah saya menghindari penggunaan enum "hard-coded" untuk berbagai pose? Saya dapat melihat bahwa sistem scripting mungkin bisa membantu, tapi saya hampir yakin ada solusi yang lebih sederhana.
sumber
if
di dalam sistem animasi; Saya sebelumnya ragu menggunakan kamus string (dalam bahasa C ++), berdasarkan ingatan. Setelah membaca hari ini tentang hashtable, saya menemukan jawaban Anda cukup sederhana. Mengenai, bagian 'blender': Apakah "menambahkan 50% berjalan" berarti mengganti beberapa bingkai dengan yang 'berjalan' pada 50% dari waktu?