-1

我有 20 个精灵。所有 20 个精灵都添加到 MutableArray 中。当我触摸 20 个精灵中的任何一个时。我想要触摸精灵的标记值。

帮我写代码。提前致谢。

4

2 回答 2

0

那应该相当简单。由于您没有提供任何代码,我会假装它看起来像这样。

for (CCSprite *aSprite in arrayOfSprites){
    if ([self screenPosition:touchPosition intersectedWithSprite: aSprite]){
        NSInteger tagForSprite = aSprite.tag; // do what you want with this value
    }
}

touchPositionIntersectedWithSprite 是一种检查实际碰撞并返回 BOOL 的方法...

于 2013-01-30T08:26:06.627 回答
0
  1. 注册触摸。使用功能:

    -(id) init{
    if( (self=[super init])){
        self.isTouchEnabled = YES;
        /* to do */
    }}
    
    - (void) registerWithTouchDispatcher{
    /* to do */}
    
    - (BOOL) containsTouchLocation:(UITouch *)touch
    {
        return YES;
    }
    
  2. 在函数中捕捉和分析精灵的触摸

    - (BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
    {
    
    //e.g. mArrSprites - your NSMutableArray with 20 sprites
    
        for(CCSprite * sprite in mArrSprites){
            if (CGRectContainsPoint(sprite.boundingBox, location)){ //check contains sprite rect your touch
                int tag = sprite.tag;     //GET tag of sprite
            }
        }
    }
    
于 2013-01-30T09:03:08.047 回答