CCNode标签 - 显示所有标签都是相同的
问题描述:
我是新来的cocos2d游戏开发人员。我创建了一个CCNode子类,我正在循环将此子类添加到为此节点设置标签的游戏层。在此文件的m文件子类我使用触摸代表来检测元素。但控制台显示,对于此节点创建的任何对象,标记都是相同的。CCNode标签 - 显示所有标签都是相同的
答
您必须初始化每个节点的标签。使用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)
什么标记值?如果它是-1,你从来没有改变它。如果在子类中将它设置为x,则子类的所有实例都将具有标记值x(即相同)。发布一些与您如何使用标签属性相关的代码。 – LearnCocos2D 2013-03-11 09:39:12