我正在制作策略游戏并遇到了一种问题。基本上,我不知道如何处理我需要的单位的动态创建。我应该使用一些大开关语句还是有更理想的解决方案?处理多个对象
处理多个对象
回答
我假设,你实质上是在讨论在运行时实例化不同种类的类。的用途很多:)
一种选择是:
你管理一个地图(基本对象),其中关键是你的“单位”的标识和值是一个类的对象,像这样:
var unitMap:Object = {
"hero": UserGameCharacter,
"enemy": NPCharacter,
"chicken": ChickenCharacter
};
请注意,值是类对象,而不是实例。此外,让我们假设,所有字符类都扩展了基本的Character类或实现了Character接口。现在,当你想实例化一个“单元”时,你应该这样做:
var newCharacter:Character = new (unitMap["hero"])();
这样,你就不需要switch语句了。希望,这有助于作为一个起点。
如果您希望动态创建需要构建工作的多种类型的实体,请尝试始终使用抽象工厂。它会让你的游戏更加灵活和模块化。特别是对于策略游戏,您可能会有复杂的逻辑来构建每个单元。看看下面的文章:
http://www.as3dp.com/2010/11/saturated-abstract-factory-1-wholesale-creation/
我的时间有限(因为这个游戏是一个大学项目),所以我可能无法在截止日期前理解和实施上述解决方案,但看起来还是值得一看。谢谢。 – MKII 2012-03-03 02:08:35
您可能也想看看按钮引擎,它会提供一些现成的功能来处理所有不同的游戏对象。它具有依赖注入功能,这是分离对象的使用和创建的良好实践。
像上面这样,我会尽快详细看看。谢谢。 – MKII 2012-03-03 02:16:57
- 1. 处理多个JSON对象
- 2. OpenGL处理多个对象
- 3. 处理多个UI对象
- 4. 处理多个多边形对象
- 5. 处理多个对象,如一个 - WPF
- 6. 在Google云中处理多个对象
- 7. 正确处理绘制多个对象?
- 8. 处理多个返回的对象
- 9. 对象字面处理多个实例
- 10. 多处理Python类对象
- 11. 如何处理多个相关对象(在对象中嵌套)
- 12. 每个对象后处理
- 13. 处理对象
- 14. 多个对话框处理
- 15. 在python多处理中修改对象
- 16. 使用对象进行多处理?
- 17. Python的多处理与unpicklable对象
- 18. 存储过程对象多处理Manager.dict()
- 19. Python多处理.Queue修改对象
- 20. 不要多次处理对象
- 21. 对多个jQuery对象应用相同的处理程序
- 22. 一个对象使用相同的代码处理多个扩展对象
- 23. NUnit-对象处理
- 24. 处理 - mouseOver对象
- 25. 处理XDocument对象
- 26. IOS:处理对象
- 27. JSON对象处理
- 28. WCF处理对象
- 29. 处理WCF对象
- 30. 处理System.Drawing对象
呃... ...所以基本上创造这样一个枚举,然后用字符对象作为我需要创建类的容器,对不对?但是,如果我需要,我将如何能够使用对象构造函数?像unitMap [“hero”](arg)会有用吗? – MKII 2012-03-02 10:00:23
是的,正确的,这将工作。顺便说一句,当然,你也可以直接引用你想创建的类。我只是想,如果你创建的类都是扩展基类或者实现一个接口以方便使用,那可能会很有帮助。这就是我所说的“人物”。 – ghost23 2012-03-02 14:38:27
好吧,我明白了。谢谢。 – MKII 2012-03-03 02:09:50