【发布时间】:2010-10-29 21:56:26
【问题描述】:
我正在用 ActionScript 编写一个游戏,其中有多个应该可以被击球“击中”的类。
所有其他游戏内实体继承的最通用的类是 CombatObject; CombatShip、CombatAsteroid 和其他各种类都继承自它。 CombatAi 和 CombatPlayer 类都继承自 CombatShip。
现在我想让 CombatAi、CombatPlayer 和 CombatAsteroid 可以被击中,但我不希望它们继承它(以后可能会有不应该被击中的 CombatShips)。
我现在的想法是让这三个实现一个接口,IHitable,这样当它们与一个镜头发生碰撞时,我可以询问if(hitObject is IHitable),如果为真,则销毁该镜头并造成伤害。
现在的问题是,最好分别拥有这些课程吗
- 自己实现所有需要的代码来承受伤害(例如检查护盾、计算伤害百分比等)
- 让他们都拥有一个
DamageManager类的实例并实现一个函数getDamageManager():DamageManager,该函数返回一个处理所有与损坏相关的功能的类 - (2.) 的一个缺点是每个 CombatShip、CombatAsteroid 等都必须拥有一个 DamageManager 实例。让 DamageManager 成为一个 Singleton 并且只引用船和给它的镜头并让它处理其余部分可能会更好吗?
【问题讨论】:
标签: actionscript-3 game-engine