精灵检测问题

时间:2011-08-12 03:56:14

标签: iphone cocos2d-iphone detection sprite

我在屏幕上有两对精灵。当点击两个精灵时,我想检查点击的两个精灵是否相同,如果它们相同则从屏幕上删除。任何人都可以给我任何建议去做这个。 感谢。

这是我到目前为止所做的代码..

NSString *name = [NSString stringWithFormat:@"gimg.png"];   
CCTexture2D * texture = [[CCTextureCache sharedTextureCache] addImage:name];

NSMutableArray *imgFrameTemp = [NSMutableArray array];

for (int i = 0; i <2; i++) {
    CCSpriteFrame *imgFrame1 = [CCSpriteFrame frameWithTexture:texture rect:CGRectMake(i*50, 0*50, 50, 50)];
CCSpriteFrame *imgFrame2 = [CCSpriteFrame frameWithTexture:texture rect:CGRectMake(i*50, 0*50, 50, 50)];

[imgFrameTemp addObject:imgFrame1];
[imgFrameTemp addObject:imgFrame2];
}
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
    int ran = arc4random()%[imgFrameTemp count];
    CCSpriteFrame * img = [imgFrameTemp objectAtIndex:ran];
    CCSprite *sprite = [CCSprite spriteWithSpriteFrame:img];
    sprite.anchorPoint = ccp(0,0);
    sprite.position = ccp(i*60,(j+1)*60);
    [self addChild:sprite];
    [imgFrameTemp removeObjectAtIndex:ran];

}

}

  

现在我的四个精灵在屏幕上,我想检查是否点击了两个相同的精灵并将其删除。

1 个答案:

答案 0 :(得分:1)

你要检查两个精灵图像是否相同?

如果正确“CCSprite不提供图像名称,所以你手动设置”.CCSprite具有名为“userData”的属性。

//get touch sprites user Data
        NSString *str=spr.userData;
        Nsstring *str1=spr1.userData;
        if ([srt isEqualToString:str1) 
        {
            CCLOG(@"two sprites are same");
        }