试图找出我的XNA游戏中的类的层次结构

时间:2010-10-08 22:51:38

标签: c# oop class xna

我仍然不熟悉在XNA中开发游戏并使用C#中的类,但我想开始一个半正式的游戏项目,我可以在没有一次性项目的情况下学习。

我想把我的游戏分成几类。例如,一个主要的游戏类,一个玩家类(我想要两个玩家,他们互相争斗),一个关卡类(用于绘制世界),以及稍后可能出现的类似上电类和网络类的东西,所以我可以让一切都成为多人游戏。

但我不知道在XNA游戏中开始使用这样的类的最好方法。我是这样开课的吗?

namespace MyGame
{
    class Player : MyGame
    {
        // whatever
    }
}

或者像这样:

namespace MyGame
{
    class Player : Microsoft.Xna.Framework.Game
    {
        // whatever
    }
}

我希望每个类都有Initialize()Update()Draw()方法的内容,我将使用传递给这些类的主游戏类中的spriteBatch和GraphicsDeviceManager ...但我也不知道传递它们的最佳方式,或者即使我应该将它们传递给在类中自己制作新的。

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:3)

您可能希望拥有GameObjects的层次结构,因此玩家和您的敌人等将以GameObject为根。只有主要的Game类实际上是从Microsoft.Xna.Framework.Game派生的。

如果您遵循GameComponents的Xna模型,您将获得源自DrawableGameComponent的基础GameObject。当然,玩家和敌人的逻辑可以被提取到Controller类中,然后你可以将它注入到GameObject中,为每个对象提供游戏行为。

我建议你从XNA Creators Club的一些游戏示例开始,它目前已经关闭,但我相信它很快就会启动。使用这些示例来帮助您制定游戏结构。

您可能还想查看Riemer's XNA Tutorials。这是一个非常好的介绍。