실제로 CCLayer 객체 인 경우 isTouchEnabled를 사용하십시오. CCLayer 객체는 그에 따라 대상 터치 위임을 추가/제거합니다. 그래서 전체적인 질문은 '당신이 무엇을 의미합니까'는 효과가 없다는 것입니다. 예를 들어, 레이어가 (터치가 비활성화 된 상태에서) 메뉴가 포함되어있는 경우에도 메뉴는 계속 활성화되어 터치 우선 순위가 매우 높습니다. 즉, 터치에 반응하는 레이어가 아니라 포함 된 메뉴입니다. CCLayer의 코드에서
직선 (버전 2.0) : 당신이 볼 수있는
-(void) setIsTouchEnabled:(BOOL)enabled
{
if(isTouchEnabled_ != enabled) {
isTouchEnabled_ = enabled;
if(isRunning_) {
if(enabled)
[self registerWithTouchDispatcher];
else {
CCDirector *director = [CCDirector sharedDirector];
[[director touchDispatcher] removeDelegate:self];
}
}
}
}
-(void) registerWithTouchDispatcher
{
CCDirector *director = [CCDirector sharedDirector];
[[director touchDispatcher] addStandardDelegate:self priority:0];
}
는 기본 CCLayer 코드는 이미 당신이 손으로 일을하려고하는 것을 구현합니다. 그냥 속성을 사용하십시오.
self.isTouchesEnabled = NO; 어떤 CCNode 하위 클래스가 작동하지 않는 이상한 경우 – iiFreeman
플래그를 추가하고 처리하지 않으려는 경우 무시하십시오. – iiFreeman