2014-06-13 3 views
0

내 문제는 스프라이트가 보이지 않게되는 화면의 아무 곳에서나 터치하는 것입니다. 하지만 스프라이트를 두 드릴 때 스프라이트가 보이지 않아야한다는 것을 알고 싶습니다.Cocos2Dx에서 Touch를 처리하는 방법

bool CharacterSelection::ccTouchBegan(CCTouch* pTouch, CCEvent* pEvent 
{ 

    CCTouch* touch; 
    CCPoint tap = CCDirector::sharedDirector()->convertToGL(pTouch->getLocationInView()); 
    GoatSprite* goat; 
    goat = (GoatSprite*) goatSpriteObject; 
    if(touch){ 
     tap = touch->getLocation();  
    } 
    if(goat->boundingBox().containsPoint(tap)){ 
     goat->setVisible(false); 
    } 
    return true; 
} 

코드에 실수가 있으면 죄송합니다.

답변

1

코드가 이상하다고 생각합니다. 당신이 아무것도하지 않은 경우

  1. 당신은 당신이 if (touch)를 사용하는 pTouch으로 새로운 CCTouch* touch;

  2. 을 만들 필요가에오고 이미 터치를 CCEvent* pEvent

  3. 후 괄호를 누락 그것, 그 것이다 pTouch

  4. 당신은 심지어 if (touch) conditio 필요하지 않습니다. 전혀 아냐.

    cocos2d::CCPoint p = pTouch->getLocation(); 
    cocos2d::CCRect rect = goat->getBoundingBox(); 
    
    if(rect.containsPoint(p)) 
    { 
        // you touched it    
    } 
    
    :로 단순화

시도

관련 문제