CCBigSprite 및 CCSmallSprite 클래스는 CCSprite에서 상속됩니다.
spr1, spr2는 이들의 인스턴스입니다.
모든 ccTouchesStart, ccTouchesMove, 두 클래스에 대한 프로토콜 CCTargetedTouchDelegate 에서 오버라이드 (override) ccTouchesEnd 방법.중복 된 ccsprites는 z 순서가 더 크지 만 터치 이벤트에 응답하지 않습니다.
문제 : 정상적인 경우 터치 이벤트가 예상대로 작동하고 모든 스프라이트 인스턴스에 적합합니다 (스프라이트가 겹칠 때까지 ).
터치 이벤트는 (CCSmallSprite * spr2)를 터치 한 경우 (CCBigSprite * spr1) 작동합니다.
여기에 중첩 문제가 있고 그림과 같은 정확한 위치 때문에
spr2를 누르면 sp1 대신 touch 이벤트가 작동합니다.
어떻게 치명적인 문제를 해결할 수 있습니까?
-(void)onEnter {
[super onEnter];
[[[CCDirector sharedDirector]touchDispatcher]addTargetedDelegate:self
priority:self.touchPriority swallowsTouches:YES];
}
그것을 감지 않습니다
두 클래스
는 같은이 재정의 방법이 있나요? 또한 :setPriority를가 anyhing을 변경 didnt한다.
수동으로 변경합니다.
[spr2 setTouchPriority : 1]; [spr1 setTouchPriority : 2]; // 낮은 우선 순위 또는 그 반대의 의미입니다. 도움이되었습니다.
이것은 cocos2d-iphone 2.0 stable 버전 문제일까요?
swallowsTouches : NO 일했다. 예 (yes)이면 weird.it가 작동해야합니다. 하지만 노 ...에서 작동합니다. - (무효) onEnter { [super onEnter]; –