码迷,mamicode.com
首页 > 其他好文 > 详细

registerWithTouchDispatcher 注册单点触摸事件

时间:2014-07-14 08:31:55      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:style   使用   os   html   代码   工作   

Doc:

If isTouchEnabled, this method is called onEnter.

Override it to change the way CCLayer receives touch events.

 Default: CCTouchDispatcher::sharedDispatcher()->addStandardDelegate(this,0);

Example: void CCLayer::registerWithTouchDispatcher() 

{

     CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this,INT_MIN+1,true);

}

 

当我们使用this->setTouchEnabled(true);方法开启触摸事件时,默认开启的是多点触摸,而我们有时只需要单点触摸就够了。实现方法如下:

代码例子:
void HelloWorld::registerWithTouchDispatcher()
{
    CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);
}

在registerWithTouchDispatcher()函数中注册的好处是:当CCLayer或CCLayer的派生类加载时就会调用registerWithTouchDispatcher()函数 而当前CCLayer被移除时也会对注册的touch事件进行注销。
 
 

TargetedTouchDelegate.


使用这种类型的delegate的好处:

1.你不需要再处理NSSets了,CCTouchDispatcher 为了做了分离工作。每次调用的时候,你都会得到一个唯一的UITouch。 这里我们将要覆盖 “ccTouchBegan” 和“ccTouchEnded” --第一个方法当第一个touch事件开始的时候被调用,另外一个是touch结束的时候被调用。

 

     值得注意的是,一定要重写ccTouchBegan函数让其返回true。不然就会出错,因

为系统不会给你默认返回真。

bool HelloWorld::ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
    return true;
}

ccTouchEnded函数:

void HelloWorld::ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
    
}

registerWithTouchDispatcher 注册单点触摸事件,布布扣,bubuko.com

registerWithTouchDispatcher 注册单点触摸事件

标签:style   使用   os   html   代码   工作   

原文地址:http://www.cnblogs.com/xdxer/p/3840082.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!