如何在Cocos2Dx中处理Touch

时间:2014-06-13 04:34:15

标签: cocos2d-x

我的问题是什么时候触摸屏幕的任何位置,精灵变得不可见。但我想这样做,只有当我点击精灵时才能看到精灵。

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 个答案:

答案 0 :(得分:1)

我觉得你的代码很奇怪。

  1. 您在CCEvent* pEvent

  2. 之后缺少一个括号
  3. 您已经开始接触pTouch无需创建新的CCTouch* touch;

  4. 如果您没有对if (touch)进行任何操作,那么您正在使用pTouch

  5. 您根本不需要if (touch)条件。

  6. 尝试简化为:

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