注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

熊猫正正的博客

熊猫正正的天空

 
 
 

日志

 
 

多触点监听  

2013-05-25 22:29:42|  分类: ios游戏开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

using namespace cocos2d;

class HelloWorld : public cocos2d::CCLayer

{

public:

    virtual bool init();  

    static cocos2d::CCScene* scene();

    CREATE_FUNC(HelloWorld);

    

    

    //重写多触点回调函数

    virtual void registerWithTouchDispatcher(void);

    virtual void ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);

    virtual void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);

    virtual void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);

    

    //生命周期函数

    virtual void onExit();

};


-----------------

CCScene* HelloWorld::scene()

{

    CCScene *scene = CCScene::create();

    HelloWorld *layer = HelloWorld::create();

    scene->addChild(layer);

    

    return scene;

}

bool HelloWorld::init()

{

    if ( !CCLayer::init() )

    {

        return false;

    }

    //开启多触点监听务必调用此函数

    setTouchEnabled(true);

    

    CCSprite * sp1 = CCSprite::create("Icon.png");

    sp1->setColor(ccc3(255, 255, 0));//便于区分

    CCSprite * sp2 = CCSprite::create("Icon.png"); 

    sp1->setPosition(ccp(150,100));

    sp2->setPosition(ccp(150,200)); 

    addChild(sp1,0,91);

    addChild(sp2,0,92);

    

    return true;

}


//注册多触点的委托监听

void HelloWorld::registerWithTouchDispatcher(void){

    CCDirector::sharedDirector()->getTouchDispatcher()->addStandardDelegate(this, 0);

}


//用户手指第一次触碰

void HelloWorld::ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent){

    CCSetIterator iter = pTouches->begin();

    for (; iter != pTouches->end(); iter++)

    {

        CCTouch* pTouch = (CCTouch*)(*iter);

        CCPoint location = pTouch->getLocation();

        if(pTouch->getID()==0){//第一个触点

            CCSprite * sp1 = (CCSprite*)this->getChildByTag(91);

            sp1->setPosition(location);            

        }else if(pTouch->getID()==1){//第二个触点

            CCSprite * sp2= (CCSprite*)this->getChildByTag(92);

            sp2->setPosition(location);

        }

    }

}

//用户手指进行移动或者拖拽

void HelloWorld::ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent){

    CCSetIterator iter = pTouches->begin();

    for (; iter != pTouches->end(); iter++)

    {

        CCTouch* pTouch = (CCTouch*)(*iter);

        CCPoint location = pTouch->getLocation();

        if(pTouch->getID()==0){//第一个触点

            CCSprite * sp1 = (CCSprite*)this->getChildByTag(91);

            sp1->setPosition(location);

        }else if(pTouch->getID()==1){//第二个触点

            CCSprite * sp2= (CCSprite*)this->getChildByTag(92);

            sp2->setPosition(location);

        }

    }

}

//用户手指抬起

void HelloWorld::ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent){

    CCSetIterator iter = pTouches->begin();

    for (; iter != pTouches->end(); iter++)

    {

        CCTouch* pTouch = (CCTouch*)(*iter);

        CCPoint location = pTouch->getLocation();

         CCLOG("pTouch  触摸点 %i 的坐标: x:%f,y:%f",pTouch->getID(),location.x,location.y);

    }

}


//删除多触点的委托监听

void HelloWorld::onExit(){

    CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);

    CCLayer::onExit();

}


  评论这张
 
阅读(54)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017