2013-03-11 61 views
0

我是新來的cocos2d遊戲開發人員。我創建了一個CCNode子類,我正在循環將此子類添加到爲此節點設置標籤的遊戲​​層。在此文件的m文件子類我使用觸摸代表來檢測元素。但控制檯顯示,對於此節點創建的任何對象,標記都是相同的。CCNode標籤 - 顯示所有標籤都是相同的

+4

什麼標記值?如果它是-1,你從來沒有改變它。如果在子類中將它設置爲x,則子類的所有實例都將具有標記值x(即相同)。發佈一些與您如何使用標籤屬性相關的代碼。 – LearnCocos2D 2013-03-11 09:39:12

回答

0

您必須初始化每個節點的標籤。使用uniq整數作爲標記。更好地使用枚舉。

typedef enum 
{ 
    kEnemy_Dog = 1000, 
    kEnemy_Cat, 
    kEnemy_Rat, 
    kEnemy_Bat 
}EnemyType; 

typedef enum 
{ 
    kHeroType_Lion = 2000, 
    kHeroType_Tiger, 
    kHeroType_Dino, 
    kEnemy_Eagle 
}HeroType; 


CCSprite *dog = [CCSprite spriteWithFile:TEX_DOG]; 
dog.tag = kEnemy_Dog; 
[self addChild:dog z:2 tag: kEnemy_Dog]; 


CCSprite *lion = [CCSprite spriteWithFile:TEX_DOG]; 
lion.tag = kHeroType_Lion; 
[self addChild:dog z:2 tag: kHeroType_Lion]; 

//to check 
if(inSprite.tag == kHeroType_Lion)