coco2dx3.0EventDispatcher事件派发
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了coco2dx3.0EventDispatcher事件派发,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2639字,纯文字阅读大概需要4分钟。
内容图文
![coco2dx3.0EventDispatcher事件派发](/upload/InfoBanner/zyjiaocheng/534/6189b34e1d0f4c01a3437c7f9c9fde89.jpg)
在看3.0的TestCpp中的示例出现了,EventDispatcher的示例。 图片如下 添加了三张图片,但是每张点击到都会响应触摸事件,并且调整Z坐标。 按照示例的代码: Point origin = Director::getInstance()-getVisibleOrigin();Size size = Director::getInstance()
在看3.0的TestCpp中的示例出现了,EventDispatcher的示例。
图片如下
添加了三张图片,但是每张点击到都会响应触摸事件,并且调整Z坐标。
按照示例的代码:
Point origin = Director::getInstance()->getVisibleOrigin(); Size size = Director::getInstance()->getVisibleSize(); //auto containerForSprite1 = Node::create(); auto sprite1 = Sprite::create("SpriteTouchEvent/1.png"); sprite1->setPosition(origin+Point(size.width/2, size.height/2) + Point(-80, 0)); addChild(sprite1); //addChild(containerForSprite1, 10); auto sprite2 = Sprite::create("SpriteTouchEvent/2.png"); sprite2->setPosition(origin+Point(size.width/2, size.height/2)); addChild(sprite2, 20); auto sprite3 = Sprite::create("SpriteTouchEvent/3.png"); sprite3->setPosition(origin+Point(size.width/2, size.height/2) + Point(80, 0)); addChild(sprite3, 30); // Make sprite1 touchable auto listener1 = EventListenerTouchOneByOne::create(); listener1->setSwallowTouches(true); listener1->onTouchBegan = [](Touch* touch, Event* event) { auto target = static_cast<Sprite*>(event->getCurrentTarget()); Point locationInNode = target->convertToNodeSpace(touch->getLocation()); Size s = target->getContentSize(); Rect rect = Rect(0, 0, s.width, s.height); if (rect.containsPoint(locationInNode)) { //target->setOpacity(180); return true; } return false; }; listener1->onTouchMoved = [](Touch* touch, Event* event) { // auto target = static_cast<Sprite*>(event->getCurrentTarget()); // target->setPosition(target->getPosition() + touch->getDelta()); }; listener1->onTouchEnded = [=](Touch* touch, Event* event) { auto target = static_cast<Sprite*>(event->getCurrentTarget()); log("sprite onTouchesEnded.. "); //target->setOpacity(255); if (target == sprite2) { sprite2->setLocalZOrder(100); } else { sprite2->setLocalZOrder(20); } if(target == sprite1) { sprite1->setLocalZOrder(100); } else { sprite1->setLocalZOrder(10); } if(target == sprite3) { sprite3->setLocalZOrder(100); } else { sprite3->setLocalZOrder(30); } }; _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, sprite1); _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(), sprite2); _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(), sprite3);
代码修改了一点,值为了点击哪张图片,与此同时这个图片就会把Z坐标提升。
---------------------------------------我是在一步步的爬坑----------------------------------------
内容总结
以上是互联网集市为您收集整理的coco2dx3.0EventDispatcher事件派发全部内容,希望文章能够帮你解决coco2dx3.0EventDispatcher事件派发所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。