2013-04-12 67 views
0

警告: Xna Noobie在这里。地图的每个区域是否都有自己的班级?

我正在制作一个2D,自上而下的RPG,有点像口袋妖怪。在我的游戏中,我和主要的游戏类一起为玩家提供一个类,为地图提供一个类。我是否应该为地图的每个区域(例如,Town.cs,Forest.cs,River.cs)分别设置不同的类,如果需要,它们是否应该从父类继承?或者我应该只有一个通用的MapRegion类,并且地图的每个区域都只是MapRegion的一个实例?

+0

“依靠”。通常情况下,您需要在一个位置(BaseClass)中的所有常用数据和功能以及特殊位置(ChildClasses)中的特殊数据和功能。所以如果一个城镇*的行为与森林或河流不同,那么就有不同的孩子。只要你记得把所有常见的东西放在基类中,只要有很多孩子类就可以了。如果您想要将代码从一个子类复制并粘贴到另一个子类:请勿!把它放在基类中。而且,每当你*使用map变量工作时,都会使用基类来填充它们,并使用适合的子类来填充它们。 – Corak

+0

我想你最好有一个'MapRegion'类,它可以读取某种配置来创建所有的“东西”。如果整个区域的行为不同,请使用MapRegion的子类,否则我会创建一个简单的MapRegion组成的MapRegion。每个瓷砖可以指定自己的行为和事件,以便地图可以保持简单... – Crisfole

+0

爱的警告:) – Cyral

回答

1

这个决定取决于不同区域是否需要不同的功能。如果唯一的区别是地形/障碍物/建筑物/等等,那么使用通用的MapRegion类会更有意义,并且每个MapRegion都会加载存储在外部数据文件中的不同地图。但是,如果区域在代码中的处理方式差异很大(这对于神奇宝贝风格的游戏来说可能不太可能),则会创建不同的子类。它基本上取决于它们在功能上是不同的还是仅仅保存不同的数据。

+0

即使这样,只有几个不同的功能,你可以做一个'MapRegion',需要一对夫妇'行动'变量 - 不需要继承。 – 2013-04-13 06:13:01

0

我觉得每个关卡都有不同的分类,但是你可以有一些特殊的关卡需要不同的关卡。在大多数情况下,我会创建一个基类,如果我需要一个特殊的地图,我会创建一个子类。

基本地图类需要有一些比较通用的成员:

  1. 目录结构
  2. 列表NPCS
  3. 背景纹理

等等....

+0

这是我想知道的另一件事。我刚刚做了一个模拟,所以我可以在开始制作实际游戏之前测试一些基本的东西,所以我只是使用[this](http://www.spriters-resource.com/gameboy_advance/mother3 /alecshouseoutside.png)来自Mother 3的图像作为我的地图。我是否应该将每个单独的对象(例如房子,仙人掌,山脉)作为一个“结构”,而不是只有一个图像? – jae

+0

这些结构是否具有不同的属性,例如'bool Passable'?通常这些类型的游戏都与瓦片一起工作。现在是否有*一个* tile类或几个子tile类......“依赖”。 ^^; – Corak

+0

这使我们进入碰撞检测,这完全是一个完全的其他问题... – jae

相关问题