Cocos2d-x 多点触摸
cocos2d 触摸 多点
2023-09-27 14:23:29 时间
多点触摸的实现步骤与单点触摸类似,setTouchEnabled(true)开启触摸功能,注冊触摸事件,重载多点触摸函数:ccTouchesBegan(開始)、ccTouchesMoved(移动)、ccTouchesEnded(结束)、ccTouchesCancelled(系统中断取消触摸事件),每一个多点触摸函数都能够通过遍历整个CCSet来获得全部的触点。
程序代码:
头文件增加触摸重载函数:
virtual void registerWithTouchDispatcher(void); virtual void ccTouchesBegan(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent); virtual void ccTouchesMoved(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent); virtual void ccTouchesEnded(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent); virtual void ccTouchesCancelled(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent);
cpp文件增加:
setTouchEnabled(true);
定义实现这些函数:
void HelloWorld::registerWithTouchDispatcher() { CCDirector *pdir = CCDirector::sharedDirector(); pdir->getTouchDispatcher()->addStandardDelegate(this, 0); } void HelloWorld::ccTouchesBegan(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent) { CCSetIterator iter = pTouches->begin(); for (; iter != pTouches->end(); iter++) { CCTouch* pTouch = (CCTouch*)(*iter); CCPoint location = pTouch->getLocation(); CCLOG("ccTouchesBegan x: %f, y: %f", location.x, location.y); } } void HelloWorld::ccTouchesEnded(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent) { CCSetIterator iter = pTouches->begin(); for (; iter != pTouches->end(); iter++) { CCTouch* pTouch = (CCTouch*)(*iter); CCPoint location = pTouch->getLocation(); CCLOG("ccTouchesEnded x: %f, y: %f", location.x, location.y); } } void HelloWorld::ccTouchesMoved(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent) { CCSetIterator iter = pTouches->begin(); for (; iter != pTouches->end(); iter++) { CCTouch* pTouch = (CCTouch*)(*iter); CCPoint location = pTouch->getLocation(); CCLOG("ccTouchesMoved x: %f, y: %f", location.x, location.y); } } void HelloWorld::ccTouchesCancelled(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent) { CCSetIterator iter = pTouches->begin(); for (; iter != pTouches->end(); iter++) { CCTouch* pTouch = (CCTouch*)(*iter); CCPoint location = pTouch->getLocation(); CCLOG("x: %f, y: %f", location.x, location.y); } }
相关文章
- 在cocos2d-x jsb/html5中设置触摸代理的方法
- Cocos2d-精灵的几个常识
- 【关于新版Cocos2dx/Cocos2d-JS】安装包和使用方式的变化
- cocos2d-js Shader系列4:Shader、GLProgram在jsb(native、手机)和html5之间的兼容问题。cocos2d-js框架各种坑。
- Cocos2d-x 游戏 源代码 出售
- cocos2d-x 3.x 触摸事件
- cocos2d-x ios游戏开发初认识(八) 触摸事件与碰撞检測
- cocos2d-x中使用JNI的调用JAVA方法
- Cocos2d-x学习笔记(五岁以下儿童) 精灵两种方式播放动画
- Cocos2d-x 3.0 创建一个场景,并设置现场的时候,项目开始执行上主动
- 【Cocosd2d实例教程八】Cocos2d实现碰撞检测(含实例)
- Cocos2d-x 3.x基础学习: 3.2节点类Node详细总结
- 基于Cocos2d-x学习OpenGL ES 2.0之多纹理
- cocos2d 播放GIF动画类
- [cocos2d-x]在windows下创建cocos2d-x程序[important]
- Cocos2d-x win7 + vs2010 配置图文详解