首先,头文件里私有部分,声明函数:
private:
//事件响应部分bool onTouchBegan(Touch*, Event*);
void onTouchMoved(Touch*, Event*);
然后,在对应的.cpp文件里,调用
auto listener = EventListenerTouchOneByOne::create();
listener->setSwallowTouches(true);
listener->onTouchBegan = CC_CALLBACK_2(jewelsGrid::onTouchBegan, this);
listener->onTouchMoved = CC_CALLBACK_2(jewelsGrid::onTouchMoved, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);//开启侦听
接下来就是具体补充了:
bool jewelsGrid::onTouchBegan(Touch* pTouch, Event* pEvent){
auto pos = this->convertToNodeSpace(pTouch->getLocation());
}
void jewelsGrid::onTouchMoved(Touch* pTouch, Event* pEvent){
//触摸点的位置
auto pos = this->convertToNodeSpace(pTouch->getLocation());
}
感觉跟js相差不多,最多语法上面的,,,
由于是三消游戏,,在进行交换的时候,不能点击,此时要关闭侦听事件:
_eventDispatcher->pauseEventListenersForTarget(this);//交换开始,关闭触摸监听