【问题标题】:Trying to figure out the hierarchy of classes in my XNA game试图找出我的 XNA 游戏中的类层次结构
【发布时间】:2010-10-08 22:51:38
【问题描述】:

我对在 XNA 中开发游戏和使用 C# 类还有些陌生,但我想开始一个半体面的游戏项目,在那里我可以在没有一次性项目的情况下学习。

我想将我的游戏分成几类。例如一个主要的游戏类,一个玩家类(我想要两个玩家,他们互相对战),一个关卡类(用于绘制世界),也许以后还有一个强化类和网络类,这样我就可以让一切都成为多人游戏。

但我不知道在 XNA 游戏中开始使用此类类的最佳方式。我要这样上课吗:

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

或者像这样:

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

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

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

【问题讨论】:

  • I want to start a semi-decent game project where I can learn without throwaway projects - 我只想指出这是一个多么可怕的计划。一定要从端到端创建一个完整的项目。但是让它变得非常简单。 Tic-Tac-Toe 可能是一个很好的起点——您甚至不需要创建任何超出MyGame 的类。之后制作(例如)Pong - 您可以在其中拥有一个 Paddle 类和每个桨的实例(您可能想阅读 stackoverflow.com/questions/3879204 这个问题)。保存“半体面”,直到您可以制作“废话”为止。

标签: c# oop class xna


【解决方案1】:

你可能想要一个游戏对象的层次结构,所以你的玩家和你的敌人等都会有一个游戏对象作为根。只有主 Game 类实际上是从 Microsoft.Xna.Framework.Game 派生的。

如果您遵循 GameComponents 的 Xna 模型,您将拥有从 DrawableGameComponent 派生的基本游戏对象。当然,玩家和敌人的逻辑可以提取到 Controller 类中,然后您可以将其注入 GameObject 以赋予每个对象在游戏中的行为。

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

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

【讨论】:

  • Creators Club 直到周日才停止营业,这就是我在这里寻求帮助的原因。 :) 感谢您的回复,我会考虑您所说的。
  • @Wen,我添加了另一个链接,如果您还没有遇到过,您可以开始使用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-05
  • 2011-01-08
  • 1970-01-01
  • 2016-04-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多