Saya sedang mengembangkan game 2D berbasis sprite untuk Windows 7 Phone, menggunakan XNA. Pelatihan dan tutorial yang tersedia sangat membantu, tetapi masalah yang saya hadapi adalah bahwa masing-masing dari mereka mendekati desain kelas mereka secara berbeda, dan kode ini tidak diperhitungkan dengan baik. Akibatnya, sulit bagi saya untuk mendapatkan pemahaman yang baik tentang tanggung jawab mana yang harus saya berikan kepada kelas tertentu.
Sebagai contoh, saya dapat memiliki kelas sprite dasar BaseSprite
yang tahu cara menggambar itu sendiri, memeriksa tabrakan, dll. Saya kemudian dapat memiliki AnimatedSprite
kelas yang akan tahu cara menavigasi sprite sheet, ExplodingSprite
kelas, dan sebagainya. Teknik ini ditunjukkan dalam contoh Space Invaders dalam materi Windows 7 Phone Jumpstart Session 2 .
Atau, saya bisa menempatkan sebagian besar render dan menjalankan tanggung jawab gim di GameScreen
kelas; kelas itu dan kelas turunannya berperilaku lebih seperti formulir atau halaman web dalam hal tanggung jawab mereka. Kelas sprite adalah wadah yang lebih sederhana dengan logika yang jauh lebih sedikit.
Ini adalah teknik yang digunakan dalam game Alien Sprite pada Windows 7 Phone Training Kit dan contoh-contoh manajer permainan lainnya.
Apa pendekatan berorientasi objek yang benar untuk desain kelas dalam pengembangan game?