• 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);
    
    
    	}
    }





     

  • 相关阅读:
    关于日志造成的频繁的IO
    PHP
    gitignore
    Linux安装gradle
    Ambari和ClouderManager分析对比
    原生hadoop生态系统组件安装文档
    hive的数据类型和数据模型
    hive概述
    使用binlog和canal从mysql实时抽取数据
    canal概述
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7061766.html
Copyright © 2020-2023  润新知