CCScene* HelloWorld::scene()
{
// 'scene' is an autorelease object
CCScene *scene = CCScene::create();
// 'layer' is an autorelease object
HelloWorld *layer = HelloWorld::create();
// add layer as a child to scene
scene->addChild(layer);
// return the scene
return scene;
}
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !CCLayer::init() )
{
return false;
}
// 开启多点触摸监听务必调用此函数
setTouchEnabled(true);
CCSprite * sp1 = CCSprite::create("Icon.png");
sp1->setColor(ccc3(255, 255, 0));//便于区分
sp1->setPosition(ccp(150,100));
addChild(sp1, 0 , 91);
CCSprite *sp2 = CCSprite::create("Icon.png");
sp2->setPosition(ccp(150,200));
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 loaction = pTouch->getLocation();
CCLog("pTouch 触摸点%i坐标:x=%f , y=%f",pTouch->getID(),loaction.x ,loaction.y);
}
}
// 生命周期函数
void HelloWorld:: onExit()
{
CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
CCLayer::onExit();
}