好的,我有一个名为 Enemy 的主类,在其中我有不同敌人的子类(即 ZombieEnemy)。我需要一种方法来定位敌人的所有精灵/子类。即,对于碰撞检测,我需要一种方法来查看所有敌人是否“死”来结束关卡。
谢谢
好的,我有一个名为 Enemy 的主类,在其中我有不同敌人的子类(即 ZombieEnemy)。我需要一种方法来定位敌人的所有精灵/子类。即,对于碰撞检测,我需要一种方法来查看所有敌人是否“死”来结束关卡。
谢谢
有很多方法可以做到这一点。一种是向你的 Enemy 类添加一个方法,这样-(BOOL)isEnemy
只会返回 YES。(如果 Enemy 有一个您可以自定义的超类,例如 GameObject,这实际上会更有用。在该类中实现 -isEnemy 以返回 NO。否则,您将不知道是否可以在给定对象上调用 -isEnemy。)子类会自动继承这个方法。或者,您可以使用-isKindOfClass:
. 或者,由于您是创建敌人的人,您当然可以保留所有活跃敌人的列表。如果屏幕上有很多对象,这可能是最好的计划,其中只有一些是 Enemy 对象。
确定所有敌人何时死亡是您可能经常想要做的事情。保留一个活的敌人列表可能是有意义的。当敌人死亡时,将其从列表中删除。您可以通过查看现场敌人列表的长度来快速测试玩家是否成功通关。如果它大于 0,则还有更多工作要做。