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();  
    }  
  • 相关阅读:
    java pojo类
    web(一)
    java通过配置文件(Properties类)连接Oracle数据库代码示例
    java数组排序(插入排序、冒泡排序、选择排序)与递归 代码示例
    匿名内部类
    java反射机制
    ubuntu安装kvm流程
    squid代理服务问答
    ftp nfs samba比较
    Samba服务问答
  • 原文地址:https://www.cnblogs.com/jiackyan/p/3042583.html
Copyright © 2011-2022 走看看