cocos2d-x 3.x addEventListenerWithSceneGraphPriority第二个参数的作用
来源:互联网 发布:mac fn键有什么用 编辑:程序博客网 时间:2024/06/08 01:50
之前在查看一些博文中有看到关于addEventListenerWithSceneGraphPriority第二个参数的作用,有说并没有什么作用,有的说,是将监听器与Node类对象绑定,从而在节点释放的时候监听器(Listener)同时一起释放,今天发现其第二个参数还有另外的用处,特来分享,不知正确与否~如有错误望大神指正
首先在层HelloWorld上我添加了一个蓝色块sprite:
代码如下:
auto sprite1 = Sprite::create("CyanSquare.png");sprite1->setPosition(origin + Point(size.width / 2, size.height / 2) + Point(-80, 80));addChild(sprite1, 10);
auto listener1 = EventListenerTouchOneByOne::create();
listener1->onTouchBegan = [](Touch* touch, Event* event){// 获取事件所绑定的 target auto target = static_cast<Node*>(event->getCurrentTarget());// 获取当前点击点所在相对按钮的位置坐标Point pt = touch->getLocation();Point locationInNode = target->convertToNodeSpace(pt);Size s = target->getContentSize();Rect rect = Rect(0, 0, s.width, s.height);// 点击范围判断检测if (rect.containsPoint(locationInNode)){log("sprite began... x = %f, y = %f", locationInNode.x, locationInNode.y);target->setOpacity(180);return true;}log("next pass");return false;};
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, this);当设置第二个参数为this(也就是HelloWorld层)时:
当我在蓝色块上触摸时,得到的pt坐标经过target->convertToNodeSpace(pt)转换后坐标不变,由此看出,即使在蓝色块上触摸,得到的target仍然是HelloWorld层(与第二个参数一致)。
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, sprite1);
当设置第二个参数为sprite1(也就是蓝色块)时当我在蓝色块外触摸时,得到的pt坐标经过target->convertToNodeSpace(pt)转换后坐标变化,由此看出,即使在蓝色块外触摸,得到的target仍然是蓝色块对应的指针(与第二个参数一致)。
0 0
- cocos2d-x 3.x addEventListenerWithSceneGraphPriority第二个参数的作用
- cocos2d-x第二个示例ActionManagerTest注释
- Cocos2d-x 一些常见宏的作用
- cocos2d-x相关类的作用参考
- Quick-cocos2d-x ModelBase的作用
- cocos2d-x 3.x游戏教程 - Eight 第二篇
- cocos2d x 3.x
- cocos2d-x 3.x的GLProgramState剖析
- Cocos2d-x 3.x的渲染流程
- cocos2d-x 3.x pageView的使用
- cocos2d-x 3.x DrawNode的使用
- cocos2d-x的第一个游戏
- 我的第一个cocos2d-x 游戏
- cocos2d-x开发的第一个小游戏
- 我的第一个Cocos2d-x程序
- 我的第一个Cocos2D-x 程序
- Cocos2d-x 3.X 里的回调函数及其参数适配
- Cocos2d-x 3.X 里的回调函数及其参数适配
- Android 开发中,有哪些坑需要注意
- p7zip的解压和压缩
- poj3368 Frequent values
- powerdesigner逆向导出oracle数据库结构显示备注
- Executors 和 ExecutorService
- cocos2d-x 3.x addEventListenerWithSceneGraphPriority第二个参数的作用
- POJ 1456 Supermarket
- c++11特性之std::thread--进阶
- 海量数据处理
- Codeforces Round #328 (Div. 2) A. PawnChess
- Codeforces Round #328 (Div. 2) B. The Monster and the Squirrel
- 二叉树的基本操作实现
- 五,一个可以左右滑动的关卡选择界面
- 为什么选择 Java 8 ?