我正在制作一个游戏,其中每个演员都由一个GameObjectController
表示。可以参与战斗的游戏对象实施ICombatant
。如何指定战斗功能的参数必须继承GameObjectController
并实现ICombatant
?还是这表明我的代码结构不良?
public void ComputeAttackUpdate(ICombatant attacker, AttackType attackType, ICombatant victim)
在上面的代码中,我希望
attacker
和victim
从GameObjectController
继承并实现ICombatant
。这在语法上可能吗? 最佳答案
大概所有的ICombatant还必须是GameObjectControllers吗?如果是这样,您可能想创建一个新接口IGameObjectController,然后声明:
interface IGameObjectController
{
// Interface here.
}
interface ICombatant : IGameObjectController
{
// Interface for combat stuff here.
}
class GameObjectController : IGameObjectController
{
// Implementation here.
}
class FooActor : GameObjectController, ICombatant
{
// Implementation for fighting here.
}