2013-07-22 4 views
1

내 메인 화면은 Main.ccbi이고 3 개의 CCSprite를 포함합니다. 이제 사용자가 CCSprite를 클릭 할 때 그가 클릭했는지 알아야합니다. CCSprite 사용자가 클릭 한 CCMotionBegin 메소드에서 계산하고 싶습니다.어떤 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