Cocos2dx单击事件优先级实例

bool MyTouchEvent1::init() { if (!Layer::init()) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); Sprite * sp1 = Sprite::create("HelloWorld.png"); sp1->setPosition(Point(visibleSize.width/2,visibleSize.height/2)); this->addChild(sp1); Sprite * sp2 = Sprite::create("node.png"); sp2->setPosition(Point(visibleSize.width / 2,visibleSize.height / 2)); this->addChild(sp2); //创建单机屏幕的监听器 auto listener = EventListenerTouchOneByOne::create(); //按下事件 listener->onTouchBegan = [](Touch *touch,Event * event) { //注册监听事件时绑定一个node对象,取出这个node对象 auto target = static_cast<Sprite*>(event->getCurrentTarget()); //坐标系转换 Point pos = Director::getInstance()->convertToGL(touch->getLocationInView()); //判断是不是点击到了精灵 if (target->getBoundingBox().containsPoint(pos)) { target->setOpacity(100); return true; } return false; }; //抬起事件 listener->onTouchEnded = [](Touch *touch,Event * event) { //恢复精灵的透明度 auto target = static_cast<Sprite*>(event->getCurrentTarget()); target->setOpacity(255); }; //设施点击的吞没事件(设置了以后,点击重叠部分 不会影响到下一层) listener->setSwallowTouches(true); //注册监听事件 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener,sp1); _eventDispatcher->addEventListenerWithSceneGraphPriority(listener->clone(),sp2); return true; }

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...