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





     

  • 相关阅读:
    Javascript继承,再谈
    RHEL7使用systemctl管理服务
    centos7进入单用户模式修改root密码
    IBM DS5020 管理口密码重置
    IBM小机拆镜像换盘
    HMC版本支持
    IBM产品系列和AIX系统版本
    AIX 6.1创建逻辑卷并挂载【smitty】
    AIX中的网络管理
    创建AIX克隆盘
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7061766.html
Copyright © 2011-2022 走看看