多点触摸的实现步骤与单点触摸类似,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); }
}

最新文章

  1. Java设计模式之行为型模式
  2. JS回调函数全解析教程
  3. IC卡复位应答ATR的数据元和它们的意义
  4. [原创]CI持续集成系统环境---部署gerrit环境完整记录
  5. BZOJ3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者
  6. 调用opencv打开不摄像头
  7. SSH自动断开连接的原因
  8. 关于sleep()和interrupt()及主线程和线程
  9. SQL的case when then else end语句的用法
  10. 爬虫高性能 asyncio库 twisted库 tornado库
  11. Ansys热应力计算
  12. C++ 标准 和 C 标准 (截止到2019年03月)
  13. Manager解决Process进程之间的数据访问
  14. thinkphp5中使用PHPExcel(转载)
  15. 【转】Ubuntu FireFox无法播放网页视频音乐的解决办法
  16. Roman To Integer leetcode java
  17. redmine创建新闻,自动发邮件给项目组所有成员
  18. [ASP.NET]NTKO插件使用常见问题
  19. Apple ID地区怎么改为美国?(转载)
  20. Oracle 11G RAC:生产环境下架构

热门文章

  1. Android广播机制分析
  2. 【翻译自mos文章】11.2.0.4及更高版本号的asm实例中MEMORY_TARGET 和 MEMORY_MAX_TARGET的默认值和最小值
  3. codecombat之边远地区的森林1-11关及地牢38关代码分享
  4. 11. Container With Most Water[M]盛最多水的容器
  5. WPF动态控件生成查找不到问题
  6. IP地址转化为数字,charindex ,SUBSTRING
  7. 微信小程序和App的UI设计有什么异同吗?
  8. tomcat 和 jboss的热部署(热发布)问题
  9. linux 下vim中关于删除某段,某行,或者全部删除的命令
  10. 全球NTP服务器列表