【发布时间】:2011-01-28 18:08:35
【问题描述】:
我正在尝试使用 C# 和 XNA 设计一个小游戏,在开始之前我想确保这种方法有意义:
基本上,我想创建一个 GameObject 类,其中包含我要在屏幕上绘制的所有元素,无论是武器、怪物、人类、拾取器等。
所以我在想我应该创建一个名为 GameObject 的抽象类,它具有设置 Texture2D、Vector2 位置、Draw() 方法和 Move() 方法的属性。
另外,由于我有人类和怪物,我可以创建一个名为 Biped 或类似的基类,并给它一个“AttackBehavior”属性(它本身就是一个类),这样我就可以创建不同的攻击方法(人类攻击怪物,怪物攻击人类)。我会在我的 GameObject 类中使用 Move() 方法的抽象实现,这样我就可以为不移动的项目(武器等)覆盖它,并为我的人类和怪物提供不同的移动速度、模式等。
所以我的问题是:
- 这种设计模式有意义吗?我一直在阅读 Head First Design Patterns 并阅读有关组合对象的内容(因此我的 AttackBehavior 对象)
- 我应该在我的 Game1.cs 中放入什么类型的代码?这应该是 MVC 模式中的“视图”吗?
【问题讨论】:
-
您的抽象“GameObject”类通常称为“Sprite”
标签: c# design-patterns xna