zoukankan      html  css  js  c++  java
  • cocos2dx 多触点监听

    /首先到cocos2d-x项目下的ios文件夹下,找到AppController.mm文件,在函数 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 中添加如下函数:  [__glView setMultipleTouchEnabled:YES];  
      
    bool HelloWorld::init()  
    {  
          
        if ( !CCLayer::init() )  
        {  
            return false;  
        }  
          
        //开启多触点监听务必调用此函数  
        setTouchEnabled(true);  
          
        CCSprite* sp1 = CCSprite::create("Icon.png");  
        sp1->setPosition(ccp(150, 200));  
        addChild(sp1, 0, 23);  
          
        CCSprite* sp2 = CCSprite::create("Icon.png");  
        sp2->setColor(ccc3(0, 255, 0));  
        sp2->setPosition(ccp(150, 100));  
        addChild(sp2, 0, 24);  
          
        return true;  
    }  
      
    //第一次碰触  
    void HelloWorld::ccTouchesBegan(cocos2d::CCSet *touches, cocos2d::CCEvent *event)  
    {  
        CCSetIterator inter = touches->begin();  
        for(; inter != touches->end(); inter++)  
        {  
            CCTouch* touch = (CCTouch*)(*inter);  
            CCPoint point = touch->getLocation();  
            if(touch->getID() == 0) //第一个触点  
            {  
                CCSprite* sp1 = (CCSprite*)getChildByTag(23);  
                sp1->setPosition(point);  
            }else if(touch->getID() == 1)//第二个触点  
            {  
                CCSprite* sp2 = (CCSprite*)getChildByTag(24);  
                sp2->setPosition(point);  
            }  
        }  
    }  
      
    //移动或拖拽  
    void HelloWorld::ccTouchesMoved(cocos2d::CCSet *touches, cocos2d::CCEvent *event)  
    {  
        CCSetIterator inter = touches->begin();  
        for(; inter != touches->end(); inter++)  
        {  
            CCTouch* touch = (CCTouch*) (*inter);  
            CCPoint point = touch->getLocation();  
            if(touch->getID() == 0)  
            {  
                CCSprite* sp1 = (CCSprite*)getChildByTag(23);  
                sp1->setPosition(point);  
            }else if(touch->getID() == 1)  
            {  
                CCSprite* sp2 = (CCSprite*)getChildByTag(24);  
                sp2->setPosition(point);  
            }  
        }  
    }  
      
    //用户手指抬起  
    void HelloWorld::ccTouchesEnded(cocos2d::CCSet *touches, cocos2d::CCEvent *event)  
    {  
          
    }  
      
    //多触点的委托监听注册放在onEnter的生命函数中会造成程序异常退出。默认都写在下面函数中。  
    void HelloWorld::registerWithTouchDispatche()  
    {  
        CCDirector::sharedDirector()->getTouchDispatcher()->addStandardDelegate(this, 0);  
    }  
      
      
    //删除多触点的委托监听  
    void HelloWorld::onExit()  
    {  
        CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);  
      
        //这句务必要写  
        CCLayer::onExit();  
    }  
  • 相关阅读:
    MyEclipse------文件字符输入,输出流读写信息
    MyEclipse------快速写入内容到指定目录下的文件(字节输出流)
    MyEclipse------快速读取特定目录下的文件的内容(字节输入流)
    MyEclipse------在特定目录创建文件和书写内容
    MyEclipse------遍历某个路径下的(所有或特定)文件和目录
    MyEclipse------File类的各种方法
    MyEclipse------如何在特定目录下创建文件夹
    MyEclipse------PreparedStatement使用方法
    使php支持mbstring库
    web页面性能测试
  • 原文地址:https://www.cnblogs.com/jiackyan/p/3042583.html
Copyright © 2011-2022 走看看