天天看點

cocos2d-x的觸碰事件

頭檔案:

//在頭檔案引入,不要在CPP引入,不然會編譯不通過
using namespace cocos2d;
           
virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);
	virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);
	virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);


	virtual void onEnter();
	virtual void onExit();
           

CPP檔案

//按下
bool HelloWorld::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{
	CCLog("ccTouchBegan");
	return true;
}
//移動
void HelloWorld::ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent)
{
	CCLog("ccTouchMoved");
}
//觸碰停止
void HelloWorld::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent)
{
	
	//擷取坐标
	//pTouch->getLocation();
	CCLog("ccTouchEnded");
}

//建議将觸碰委托寫在onEnter()和onExit()函數,避免因為沒有及時移除委托而報錯
void HelloWorld::onEnter()
{
	CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,0,false);
	CCLayer::onEnter();
}

void HelloWorld::onExit()
{
	CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
	CCLayer::onExit();
}
           

 再次說明:建議将觸碰委托寫在onEnter()和onExit()函數,避免因為沒有及時移除委托而報錯

繼續閱讀