XNAを使用して、Windows 7 Phone用の2Dスプライトベースのゲームを開発しています。それに利用できるトレーニングとチュートリアルは非常に役立ちますが、私が直面する問題は、それぞれが異なる方法でクラス設計にアプローチし、コードが特に適切にファクタリングされていないことです。その結果、特定のクラスにどの責任を与えるべきかを十分に理解することは困難でした。
たとえば、自分BaseSprite
自身を描画する方法、衝突をチェックする方法などを知っているベーススプライトクラスを持つことができます。その後AnimatedSprite
、スプライトシートやExplodingSprite
クラスなどをナビゲートする方法を知っているクラスを持つことができます。この手法は、Windows 7 Phone Jumpstart Session 2資料のSpace Invadersの例で説明されています。
または、代わりに、ゲームの責任のレンダリングと実行の大部分をGameScreen
クラスに配置することもできます。そのクラスとその派生クラスは、その責任の点でフォームまたはWebページのように動作します。スプライトクラスは、ロジックがはるかに少ない、より単純なコンテナです。
これは、Windows 7 Phone Training KitのAlien Spriteゲームおよびその他のゲーム状態マネージャーの例で使用されている手法です。
ゲーム開発におけるクラス設計の正しいオブジェクト指向のアプローチは何ですか?