egisterWithTouchDispatcher()函数主要用于注册Touch事件。
当我们使用this->setTouchEnabled(true); 方法开启触摸事件时,默认开启的是多点触摸,而我们有时只需要单点触摸就够了。实现方法如下:
ccTouchEnded函数:
http://www.cnblogs.com/dyllove98/p/3162890.html
当我们使用this->setTouchEnabled(true); 方法开启触摸事件时,默认开启的是多点触摸,而我们有时只需要单点触摸就够了。实现方法如下:
代码例子:
void HelloWorld::registerWithTouchDispatcher()
{
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);
}
在registerWithTouchDispatcher()函数中注册的好处是:当CCLayer或CCLayer的派生类加载时就会调用会调用registerWithTouchDispatcher()函数 而当前CCLayer被移除时也会对注册的touch事件进行注销。
Touch方法:
这里我们将要覆盖 “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)
{
}
http://www.cnblogs.com/dyllove98/p/3162890.html