我想在面向对象的编程风格中制作一个RPG。我有oo编程的经验,但从未使用大型类和子类组。我是从这开始的 http://members.gamedev.net/emmanuel_deloget/ 并创建类似于它的我自己的结构。问题是我不明白如何使用该结构。你是为比赛之类的东西创建静态类并使用它们,还是从单一种族类创建一个对象?这让我感到困惑,因为我假设您创建了一个单一的种族类,当'Main'类初始化时,您创建了所有单独的类,但上面的图表没有显示任何初始化这些对象的方法,但构造函数除外。但是因为种族将有不同的成员变量值,我将如何使用上面的图表初始化种族对象?或者这个图表是不完整的? (如果它不完整,那么这就是让我感到困惑的事情)
答案 0 :(得分:3)
强烈建议:不要使用继承层次结构来表示RPG中的对象。
改为使用合成,并使用prototype-based programming个对象来定义对象属性和行为。
原因很简单,在继承风格的类层次结构中无法表示复杂RPG的行为。
举个例子,假设你的游戏中有一个铁傀儡作为怪物。它需要:
理论上,所有这些属性都可以混合和匹配。因此,您永远无法定义包含它们的简单继承层次结构。不要尝试,只需使你的铁傀儡成为相关属性的复合物。
我讲的是实现RPG对象模型的经验 - 如果你有兴趣看一下Tyrant的源代码(我多年前写的一个roguelike游戏)。我从一个继承层次结构开始,但最终不得不将整个代码库重构为基于原型的模型。