zoukankan      html  css  js  c++  java
  • Cocos2d-x 多点触摸

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





     

  • 相关阅读:
    Git在商业项目中的使用流程
    EventBus中观察者模式的应用
    作业三——安卓系统文件助手APP原型设计
    视频剪辑软件的调研——万兴神剪手、视频编辑王、爱剪辑
    18-10-31 Scrum Meeting 3
    myapp——自动生成小学四则运算题目的命令行程序(侯国鑫 谢嘉帆)
    一个「学渣」从零开始的Web前端自学之路
    Vue一个案例引发「内容分发slot」的最全总结
    Vue CLI 3.0脚手架如何在本地配置mock数据
    Vue一个案例引发「动画」的使用总结
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7061766.html
Copyright © 2011-2022 走看看