2013-07-22 68 views
1

我的主屏幕是Main.ccbi,它包含3个CCSprite。现在我希望当用户点击一个CCSprite时,我应该知道他点击了哪个? 我想在CCMotionBegin方法中计算哪个CCSprite用户点击过。检测点击了哪个CCSprite

回答

2

首先商店,你已经在CCArray创建的精灵说mSpriteArray,然后你可以这样做以下

bool MyClass :: ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent) 
{ 
    CCPoint currentTouchLocation = pTouch->getLocationInView(); 
    currentTouchLocation = CCDirector::sharedDirector()->convertToGL(currentTouchLocation); 
    currentTouchLocation = this->convertToNodeSpace(currentTouchLocation); 

    CCSprite *selectedSprite = getSpriteAtPosition(currentTouchLocation); 

    return true; 
} 

CCSprite* MyClass :: getSpriteAtPosition(CCPoint inTouchPosition) 
{ 
    CCObject *object; 
    CCARRAY_FOREACH(mSpriteArray, object) 
    { 
     CCSprite *sprite = (CCSprite*)sprite; 

     if (sprite->boundingBox().containsPoint(inTouchPosition)) 
     { 
      return sprite; 
     } 
    } 

    return NULL; 
} 

希望这有助于。

+0

工作正常,谢谢! – Zubair