CCNode标签 - 显示所有标签都是相同的

问题描述:

我是新来的cocos2d游戏开发人员。我创建了一个CCNode子类,我正在循环将此子类添加到为此节点设置标签的游戏​​层。在此文件的m文件子类我使用触摸代表来检测元素。但控制台显示,对于此节点创建的任何对象,标记都是相同的。CCNode标签 - 显示所有标签都是相同的

+4

什么标记值?如果它是-1,你从来没有改变它。如果在子类中将它设置为x,则子类的所有实例都将具有标记值x(即相同)。发布一些与您如何使用标签属性相关的代码。 – LearnCocos2D 2013-03-11 09:39:12

您必须初始化每个节点的标签。使用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)