zoukankan      html  css  js  c++  java
  • cocos2dx触摸

    两种方法其实都一样,CCLayer也是继承CCTouchDelegate。

    1、继承CCTouchDelegate

    添加触摸代理

    CCTouchDispatcher* pDispatcher = CCDirector::sharedDirector()->getTouchDispatcher();

    单点触摸用pDispatcher->addTargetedDelegate();

    多点触摸用pDispatcher->addStandardDelegate();

    在onExit里把代理移除

    CCDirector* pDirector = CCDirector::sharedDirector();

    pDirector->getTouchDispatcher()->removeDelegate(this);

    重写触摸处理

    a、单点触摸处理

    virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);

    virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);

    virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);

    virtual void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);

    b、多点触摸处理

    virtual void ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);

    virtual void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);

    virtual void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);

    virtual void ccTouchesCancelled(CCSet *pTouches, CCEvent *pEvent);

    2、继承CCLayer

    重写onEnter、onExit函数

    xxx::onEnter()

    {

    setTouchEnabled(true);

        setTouchMode(kCCTouchesOneByOne单点、kCCTouchesAllAtOnce多点);

        CCLayer::onEnter();

    }

    xxx::onExit()

    {

    CCLayer::onExit();

    }

    重写触摸处理

    a、单点触摸处理

    virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);

    virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);

    virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);

    virtual void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);

    b、多点触摸处理

    virtual void ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);

    virtual void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);

    virtual void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);

    virtual void ccTouchesCancelled(CCSet *pTouches, CCEvent *pEvent);

    还有触摸优先级的设置等,另外单点触摸的ccTouchBegan函数里返回true可以禁止触摸向下传递。

  • 相关阅读:
    文件路径总结
    git本地仓库关联远程仓库
    webpack-dev-server版本
    box-sizing重置
    事件委托优缺点和实现
    移动端经验总结(持续更新)
    点击其他区域关闭dialog
    css3图片变灰
    安装 ubuntu 后,使用 sed 更换国内源
    在virtualBox中打开vdi(转载)
  • 原文地址:https://www.cnblogs.com/xdao/p/cocos2dx_touch.html
Copyright © 2011-2022 走看看