在.h中聲明:
virtual void registerWithTouchDispatcher(void);
virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);
並在.cpp的init()中設置:
this->setTouchEnabled(true);
下面就是Touch函數的實現:
void DragScene::registerWithTouchDispatcher(void){
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);
}
bool DragScene::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{
mBullet->setPosition(ccp(pTouch->getLocation().x , pTouch->getLocation().y));
return true;
}
void DragScene::ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent)
{
mBullet->setPosition(ccp(pTouch->getLocation().x , pTouch->getLocation().y));
}
void DragScene::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent)
{
}
void DragScene::ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent)
{
}
在觸摸的時候讓精靈跟隨觸摸移動,也就是在ccTouchMoved中更新精靈的位置。
效果圖:
轉載請註明出處:http://blog.csdn.net/Vestigge