注册了一个EventListenerTouchOneByOne事件,但是在模拟器中点击没有任何的反应,
写了个log输出提示也没有反应!!
但是在以前的代码中这样用过,是有效的,现在头也大了,找不到问题所在!!!
求各位高手帮忙看看!!!!
.h文件代码
#ifndef StartScene_H
#define StartScene_H
#include “cocos2d.h”
#include “cocostudio/CocoStudio.h”
#include “ui/UIbutton.h”
#include “GameScene.h”
using namespace cocos2d;
class StartScene : public Layer {
public:
static Scene* createScene();
virtual bool init();
CREATE_FUNC(StartScene);
};
#endif
.cpp文件代码
#include “StartScene.h”
using namespace cocos2d::ui;
Scene* StartScene::createScene() {
auto scene = Scene::create();
auto layer = StartScene::create();
scene->addChild(layer);
return scene;
}
bool StartScene::init() {
if (!Layer::init()){
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
Node *startScene = CSLoader::createNode("StartScene.csb");
auto btnPlay = static_cast<Button*>(startScene->getChildByName("playBtn"));
auto listener = EventListenerTouchOneByOne::create();
listener->onTouchBegan = ](Touch* touch, Event *event) {return true; };
listener->onTouchMoved = ](Touch* touch, Event *event) {};
listener->onTouchEnded = ](Touch* touch, Event *event) {
//Director::getInstance()->replaceScene(GameScene::createScene());
log("touch num:%d",1);
Director::getInstance()->end();
};
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, btnPlay);
this->addChild(startScene);
return true;
}