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





     

  • 相关阅读:
    PHP 二维数组排序
    linux CentOS7.* 上安装 ffmpeg 扩展
    ajax删除,
    ajax的格式、简单使用编写,
    多对多作为外键,getset方法实现
    外键介绍,manytomany介绍,filter跨表双下划线
    student学生信息表增删改
    数据库表的增删改查学生信息管理
    session保存信息用数据库
    cookie实现访问index无法访问必须从login走,返回固定的session值,
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7061766.html
Copyright © 2011-2022 走看看