XNA kullanarak, Windows 7 Phone için 2D sprite tabanlı bir oyun geliştirmenin ortasındayım. Bunun için mevcut eğitim ve öğreticiler oldukça faydalıdır, ancak karşılaştığım sorun, her birinin sınıf tasarımlarına farklı şekilde yaklaşması ve kodun özellikle iyi düşünülmemesi. Sonuç olarak, belirli bir sınıfa hangi sorumlulukları vermem gerektiğini iyi bir şekilde anlamak benim için zor oldu.
Örneğin, BaseSprite
nasıl çizileceğini, çarpışmaları kontrol etmeyi vb. Bilen bir temel sprite sınıfına sahip olabilirim. Daha sonra AnimatedSprite
sprite sayfasına, ExplodingSprite
sınıfına ve benzerlerine nasıl gidileceğini bilecek bir sınıfa sahip olabilirdim . Bu teknik, Windows 7 Phone Jumpstart Session 2 materyallerinde Space Invaders örneğinde gösterilmiştir .
Alternatif olarak, oyunun sorumluluğunu oluşturma ve çalıştırmanın büyük kısmını bir GameScreen
sınıfa koyabilirim ; bu sınıf ve türetilmiş sınıfları sorumlulukları bakımından daha çok form veya web sayfası gibi davranırlar. Sprite sınıfları çok daha az mantıklı daha basit kaplardır.
Bu, Windows 7 Telefon Eğitim Seti'nin Alien Sprite oyununda ve diğer oyun yöneticisi örneklerinde kullanılan tekniktir .
Oyun geliştirmede sınıf tasarımına doğru nesne yönelimli yaklaşım nedir?