CCTouch详解
这章我们学习点击事件和CocosBuild的使用。
首先讲解一下
CCTouch事件
创建一个CCTouchDemo
实现一下方法(这里我们以单点触摸为例)
void registerWithTouchDispatcher(void);
//单点触摸方法
boolccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);
voidccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);
voidccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);
void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);
//多点触摸方法
// virtual voidccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);
// virtual voidccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);
// virtual voidccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);
// virtual voidccTouchesCancelled(CCSet *pTouches, CCEvent *pEvent);
1.标准触摸可以实现单点触摸和多点触摸,而目标触摸只可以实现单点触摸
2.标准触摸无吞噬,既可以将触摸点传递给所有的订阅者,而我们的目标触摸可以通过设置true和false
来设置是否会吞噬。
3.目标触摸的ccTouchBegan如果返回值为false则触摸点无法传递给move,cancel,end函数
4. 目标触摸的优先级高于标准触摸
5.可以通过 CCDirector::sharedDirector()->getTouchDispatcher()->setPriority(p,this);
在HelloWorldScene.cpp中 init方法加如下代码
//添加一个精灵
CCSize size =CCDirector::sharedDirector()->getWinSize();
sprite =CCSprite::create("Icon-57.png");
sprite->setPosition(ccp(size.width / 2, size.height / 2));
this->addChild(sprite);
单点触摸方法的实现,如下图
最终效果图如下。点击哪里精灵会随其移动。