我想在面向对象的编程风格中制作RPG。我有oo编程经验,但从未与大量的类和子类合作过。我从这个 http://members.gamedev.net/emmanuel_deloget/ 开始,创建类似于它的我自己的结构。问题是我不明白结构如何使用。你是否为类似比赛的事物创建静态类并使用它们,或者你是否从单个种族类创建了一个对象?这让我感到困惑,因为我会假设你创建了一个单独的种族类,并且当'Main'类初始化时创建了所有的单个类,但是上面的图表并没有显示任何用于初始化这些对象的方法,除了构造函数。但是因为种族会有不同的成员变量值,我将如何使用上面的图表来初始化一个种族对象?或者这个图表不完整? (如果它不完整,那么这就是我所认为的混淆)如何使用RPG类层次结构?
0
A
回答
3
强烈建议:不要使用继承层次结构来表示RPG中的对象。
改为使用组合而使用prototype-based programming对象来定义对象属性和行为。
简单的原因是,无法在继承式类层次结构中表示复杂RPG的行为。
举一个例子,假设你在游戏中有一个铁魔像。它需要有:
- 关于什么是能够造成破坏(即冲击非常抗拒,非常耐火,很容易生锈或酸)
- “铁”材料的性能“大型人形”在战斗和行动方面的属性(不能飞行,可以行走,可以被斩首,可以使用超大型武器和装甲)
- 魔法效果的“人造结构”的属性(不容易受到恐惧,不是生活,神奇地动画)
- “半智能怪物”的属性与人工智能和行为的相互关系(敌对玩家,在瞄准球员等)
所有这些类型的属性理论上可以混合和匹配。所以你将永远无法定义一个包含它们的简单继承heirarchy。甚至不要尝试,只是让你的钢铁魔像成为相关属性的组合。
我从实施RPG对象模型的经验中发表意见 - 如果您有兴趣,请查看Tyrant(我多年前写的一个roguelike游戏)的源代码。我从一个继承层次开始,但最终不得不将整个代码重构为基于原型的模型。
相关问题
- 1. 类层次结构
- 2. 类层次结构
- 3. PHP类层次结构 - 层次结构中的最高类
- 4. 如何设计类层次结构
- 5. 如何迭代类层次结构?
- 6. IDE如何获得类层次结构
- 7. 如何处理类层次结构
- 8. findContours使用层次结构
- 9. 如何使用每个类层次结构策略的表来管理nhibernate中的多级类层次结构?
- 10. 类层次结构 - 在RPG游戏,类重叠(VB.Net)数据设计
- 11. 扩展类层次结构
- 12. C++类层次结构
- 13. Json Net层次结构类
- 14. Automapper和类层次结构
- 15. LESS CSS类层次结构
- 16. Common Lisp类层次结构
- 17. CSS - 类层次结构?
- 18. NSObject的类层次结构
- 19. 类层次结构(C++)
- 20. 如何用抽象类使用protobuf序列化层次结构
- 21. 如何在一个层次结构类中使用std :: is_base_of?
- 22. 如何使用集合实现类别层次结构
- 23. 如何在需要层次结构时使用案例类?
- 24. 如何使用RestSharp反序列化类层次结构?
- 25. 层次结构
- 26. 使用Linq构建树层次结构
- 27. 如何实现调用层次结构
- 28. 如何构建层次结构?
- 29. 如何使用sql定义层次结构中的层数?
- 30. 父类和子类的层次结构
这个问题太广泛了,无法回答。 – 2011-02-07 18:50:19