一、CCTouch触摸事件
cocos2d-x触摸事件分为两种,单点触摸和多点触摸,单点触摸是我们最常用的触摸方式。要使用单点触摸必须要实现一下几个函数
virtual void registerWithTouchDispatcher(void);
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);
不用必须实现CCLayer的onEnter()和onExit()方法,在registerWithTouchDispatcher中会自动完成触摸事件的注册和移除,要开启触摸事件,在初始化时必须设置setTouchEnabled(true),默认开启的是多点触摸,在registerWithTouchDispatcher方法中需要我们添加单点触摸。例子中在testLayer中添加了一个按钮和一个标签,当点击按钮的时候会弹出一个半透明的viewLayer遮盖在testLayer上面,viewLayer上面添加有一个标签。我们可以通过改变按钮和各层的优先级来看见不同的显示效果,详细运行效果可见工程源码。
代码如下:
cocos2d-x触摸事件分为两种,单点触摸和多点触摸,单点触摸是我们最常用的触摸方式。要使用单点触摸必须要实现一下几个函数
virtual void registerWithTouchDispatcher(void);
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);
不用必须实现CCLayer的onEnter()和onExit()方法,在registerWithTouchDispatcher中会自动完成触摸事件的注册和移除,要开启触摸事件,在初始化时必须设置setTouchEnabled(true),默认开启的是多点触摸,在registerWithTouchDispatcher方法中需要我们添加单点触摸。例子中在testLayer中添加了一个按钮和一个标签,当点击按钮的时候会弹出一个半透明的viewLayer遮盖在testLayer上面,viewLayer上面添加有一个标签。我们可以通过改变按钮和各层的优先级来看见不同的显示效果,详细运行效果可见工程源码。
代码如下: