CCNode标记 - 显示所有标记相同

时间:2013-03-11 09:10:08

标签: cocos2d-iphone

我是cocos2d游戏开发的新手。我已经子类化了一个CCNode,我循环将这个子类添加到游戏层设置此节点的标签。在这个子类的m文件中,我使用touches委托给检测元素。但控制台显示,对于此节点的任何对象,创建的标记都是相同的。

1 个答案:

答案 0 :(得分: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)