2014-04-01 31 views
3

我有許多SKSpriteNodes SKLabelNodes作爲孩子。我想要的是在精靈節點邊界內的任何接觸由精靈節點處理,並且其子節點(標籤節點)完全忽略接觸。我試過這樣做:防止SKLabelNode接收Touches

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

但這不起作用。當我將此屬性設置爲NO時,標籤節點註冊觸摸。接下來,我試着子類的標籤節點並設置userInterationEnabled = NO在init,因爲這樣的:

@implementation BBLabelNode 

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

     self.userInteractionEnabled = NO; 

    } 
    return self; 
} 

@end 

可悲的是,這也沒有工作。所以我想知道:如何正確地去引起一個標籤說明不接觸觸摸在所有

+0

我會註銷在touches中接收觸摸的對象的描述,以查看實際對象是什麼。有可能是別的東西對觸摸有反應,而不是標籤節點。 –

+0

你能告訴你如何檢測這些觸摸嗎?另外,你見過這個嗎?它可能有幫助:https://github.com/iSofTom/STSpriteKit/blob/master/STSpriteKit/SKScene%2BSTAdditions.m –

回答

0

默認情況下,只有SKSceneuserInteractionEnabled設置爲YES。因此,如果您從未啓用它們,則無需在對象上設置userInteractionEnabledNO

仔細檢查是否有其他物體,節點,場景等將您的標籤的userInteractionEnabled設置爲YES

+0

我發現這是一個非常有趣的建議。我可以告訴你,我熟悉所有的代碼,並且我知道代碼中沒有任何內容將該屬性設置爲YES,以用於我創建的任何標籤節點。你是否建議可以在幕後設置它們爲YES? – zeeple