本文有前续文章:http://blog.csdn.net/a3895177/article/details/12283713。
本文也是在前续文章的基础上讨论的。
也没啥子说的,直接上代码:
在onenter()里面设置监听:
void HelloWorld::onEnter()
{
//开启单点触控
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,0,false);
//开启多点触控
CCDirector::sharedDirector()->getTouchDispatcher()->addStandardDelegate(this,0);
CCLayer::onEnter();
}
说明监听函数:
virtual void ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);
virtual void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);
virtual void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);
定义监听函数:
void HelloWorld::ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent)
{
CCLog("--ccTouchesBegan,touch count = %d",pTouches->count());
//获得多少个点:,pTouches->count()
//遍历点:
CCSetIterator iter = pTouches->begin();
for (; iter!=pTouches->end(); iter++) {
CCTouch * pTouch = (CCTouch * )(* iter);
//获得点的坐标
CCPoint location = pTouch->getLocation();
if (pTouch->getID() == 0) {
CCLog("1.Touch");
}else if (pTouch->getID()==1){
CCLog("2.Touch");
}
}
}
void HelloWorld::ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent)
{
CCLog("--ccTouchesMoved");
}
void HelloWorld::ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent)
{
CCLog("--ccTouchesEnded");
}
至于删除监听跟单点事件一样,调用同一个函数:
void HelloWorld::onExit()
{
//解除监听
CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
CCLayer::onExit();
}