Ориентация на все подклассы и спрайты (cocos2d iPhone) - PullRequest
0 голосов
/ 23 марта 2011

Хорошо, у меня есть этот основной класс, который называется Enemy, и внутри него у меня есть подклассы разных врагов (то есть ZombieEnemy). Мне нужен способ нацеливаться на все спрайты / подклассы врага. Т.е. для обнаружения столкновений мне нужен способ узнать, все ли враги «мертвы», чтобы закончить уровень.

Спасибо

1 Ответ

1 голос
/ 23 марта 2011

Есть много способов сделать это.Одним из них является добавление метода к вашему классу Enemy, например -(BOOL)isEnemy, который просто возвращает YES.(Это на самом деле было бы более полезно, если у Enemy есть суперкласс, который вы можете настроить, например, GameObject. Реализуйте -isEnemy в этом классе, чтобы вернуть NO. В противном случае вы не будете знать, сможете ли вы вызвать -isEnemy для данного объекта.)Подклассы автоматически наследуют этот метод.Кроме того, вы можете проверить класс каждого объекта, используя -isKindOfClass:.Или, поскольку вы единственный, кто создает врагов, вы, безусловно, можете хранить список всех активных врагов.Это, вероятно, лучший план, если у вас на экране много объектов, только некоторые из которых являются объектами врага.

Решать, когда все враги мертвы, вы, вероятно, хотите делать очень часто.Возможно, имеет смысл вести список живых врагов.Когда враг умирает, удалите его из списка.Вы можете быстро проверить, успешно ли игрок прошел уровень, проверив длину списка живых врагов.Если оно больше 0, есть больше работы.

...