문제

좋아요. Enemy라는 메인 클래스가 있고 그 안에는 다른 적 (예 : ZombieEnemy)의 하위 클래스가 있습니다.적의 모든 스프라이트 / 하위 클래스를 대상으로하는 방법이 필요합니다.즉, 충돌 감지를 위해 레벨을 끝내기 위해 모든 적이 '죽었는지'확인하는 방법이 필요합니다.

감사합니다

도움이 되었습니까?

해결책

이를 수행하는 방법에는 여러 가지가 있습니다. 하나는 단순히 YES를 반환하는 -(BOOL)isEnemy와 같은 Enemy 클래스에 메서드를 추가하는 것입니다. (Enemy에 GameObject와 같이 사용자 정의 할 수있는 수퍼 클래스가있는 경우 실제로 더 유용합니다. 해당 클래스에서 -isEnemy를 구현하여 NO를 반환합니다. 그렇지 않으면 주어진 객체에서 -isEnemy를 호출 할 수 있는지 알 수 없습니다.) 서브 클래스는이 메서드를 자동으로 상속합니다. 또는 -isKindOfClass:를 사용하여 각 개체의 클래스를 테스트 할 수 있습니다. 또는 적을 생성하는 사람이므로 모든 활성 적 목록을 확실히 유지할 수 있습니다. 화면에 많은 오브젝트가 있고 그중 일부만 적 오브젝트 인 경우이 계획이 가장 좋습니다.

모든 적이 죽었을 때를 결정하는 것은 아마도 매우 자주하고 싶은 일입니다. 살아있는 적의 목록을 유지하는 것이 합리적 일 수 있습니다. 적이 죽으면 목록에서 제거합니다. 라이브 적 목록의 길이를 확인하여 플레이어가 성공적으로 레벨을 클리어했는지 여부를 빠르게 테스트 할 수 있습니다. 0보다 크면해야 할 일이 더 많습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top