2014-04-01 4 views
3

SKLabelNodes가있는 SKSpriteNodes가 여러 개 있습니다. 스프라이트 노드의 범위 내에서 터치가 스프라이트 노드에 의해 처리되고 그 자식 노드 (레이블 노드)가 완전히 터치를 무시해야합니다. 나는 이것을 시도했다 :SKLabelNode가 터치를받지 못하도록합니다.

SKLabelNode *miles = [SKLabelNode labelNodeWithFontNamed:@"Verdana"]; 
miles.userInteractionEnabled = NO; 

그러나 이것은 작동하지 않는다. 이 등록 정보를 NO로 설정하면 레이블 노드가 등록됩니다.

@implementation BBLabelNode 

-(id)init { 
    if (self = [super init]) { 

     self.userInteractionEnabled = NO; 

    } 
    return self; 
} 

@end 

슬프게도,이 또한 작동하지 않았다 : 다음으로 레이블 노드를 서브 클래 싱과 같은 초기화에 NO = userInterationEnabled을 설정했습니다. 그래서 저는 궁금해합니다. 어떻게하면 레이블 노트가 닿지 않도록 을 전혀 쓰지 않을 수 있습니까??

+0

touchesBegan에서 터치를받는 객체의 설명을 로그 아웃하여 실제 객체가 무엇인지 확인합니다. 라벨 노드가 아닌 다른 것이 터치에 반응하고있을 가능성이 있습니다. –

+0

이러한 감각을 어떻게 감지하는지 보여 줄 수 있습니까? 또한, 당신은 이것을 보았습니까? 그것은 도움이 될 수 있습니다 : https://github.com/iSofTom/STSpriteKit/blob/master/STSpriteKit/SKScene%2BSTAdditions.m –

답변

0

SKSceneuserInteractionEnabled이 기본값 인 YES으로 설정되어 있습니다. 따라서 활성화하지 않은 경우 개체에 userInteractionEnabled ~ NO을 설정할 필요가 없습니다.

다른 객체, 노드, 장면 등이 라벨의 userInteractionEnabledYES으로 설정하면 다시 확인하십시오.

+0

나는 매우 흥미로운 제안을 찾았습니다. 모든 코드를 잘 알고 있으며 코드의 아무 것도 내가 만든 레이블 노드에 대해 해당 속성을 YES로 설정하지 않는다는 것을 알고 있습니다. 무언가를 무대 뒤에서 YES로 설정할 수 있다고 제안하고 있습니까? – zeeple

관련 문제