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





     

  • 相关阅读:
    P1288 取数游戏II
    设置ip的bat
    oracle 服务器配置
    查看硬盘空间
    oracle 备份还原相关_转贴
    ssh 乱码
    inno setup regedit
    db locked ?
    用户控件和页面
    什么是接口?接口有哪些好处,抽象类(abstract)和接口(interface)的区别
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7061766.html
Copyright © 2011-2022 走看看