美文网首页
cocos2dx不同界面下控件的坐标设置与转换

cocos2dx不同界面下控件的坐标设置与转换

作者: 东方小白 | 来源:发表于2018-08-23 17:40 被阅读66次

///////////////////////////////////////////////////////////////////////////
世界坐标转换为本地坐标
//////////////////////////////////////////////////////////////////////////
/
LayerColor* layer_block1 = LayerColor::create(Color4B::RED, 200, 200);
this->addChild(layer_block1);
layer_block1->ignoreAnchorPointForPosition(false);
layer_block1->setAnchorPoint(Vec2(1, 1));
layer_block1->setPosition(Vec2(300, 300));

auto mark1 = Label::createWithSystemFont("Block1", "", 50);
mark1->setPosition(Vec2(100, 120));
layer_block1->addChild(mark1);




LayerColor* layer_block2 = LayerColor::create(Color4B::GREEN, 100, 100);
layer_block1->addChild(layer_block2);
layer_block2->ignoreAnchorPointForPosition(false);
layer_block2->setAnchorPoint(Vec2::ZERO);
layer_block2->setPosition(Vec2::ZERO);

auto mark2 = Label::createWithSystemFont("Block2", "", 30);
mark2->setPosition(Vec2(50, 50));
layer_block2->addChild(mark2);

auto Block2_convertToWorldSpace = layer_block2->getParent()->convertToWorldSpace(layer_block2->getPosition());
auto Block2_convertToWorldSpaceAR = layer_block2->getParent()->convertToWorldSpaceAR(layer_block2->getPosition());
log("layer_block2's pos.x = %f,pos.y = %f", layer_block2->getPosition(), layer_block2->getPosition());
log("Block2_convertToNodeSpace:_x = %f,_y = %f", Block2_convertToWorldSpace.x, Block2_convertToWorldSpace.y);
log("Block2_convertToNodeSpaceAR:_x = %f,_y = %f", Block2_convertToWorldSpaceAR.x, Block2_convertToWorldSpaceAR.y);

auto tempPos = layer_block2->convertToNodeSpace(Vec2(110, 110));
auto tempPos1 = convertToNodeSpace(Vec2(110, 110));//世界坐标系下面的vec2(110,110)位置转换到节点(父节点layer_block1)坐标系下的vec2(10,10)位置.
layer_block2->setPosition(tempPos);

Q:不同层同一个场景下的控件,可以把他们转到一个坐标系,以一个座位参照物,比如有A 和B 俩个控件,A 是layer1下面的控件的子节点的子节点的。。。。。。子节点,B是layer2下面的控件的子节点的子节点的。。。。。。子节点,但是刚好我又需要对他们进行坐标操作,比如要执行动画。那么这时候怎么办?
A:那么第一步我们要想的是把他们转到一个坐标系下面,首先我先A转到世界坐标系下面,
auto pos = A->convertToWorldSpace(vec2(0,0));获取到了世界坐标系下面的(0,0)点作为参照点的世界坐标,
2.我们试试让B到A的位置?
auto pos1 = B->convertToNodeSpace(pos);//移动到A的局部坐标系的位置
B->setPosition(pos1);

相关文章

  • cocos2dx不同界面下控件的坐标设置与转换

    /////////////////////////////////////////////////////////...

  • iOS坐标系的转换

    什么是坐标系的转换? 不同坐标系,控件的View的frame值是不同的,比如上图的红色View,以蓝色控件为父控件...

  • 2018-10-20

    1. 登录界面的效果图 2. 登录界面实现的功能描述 实现不同的身份登陆 3. 登录界面各控件的参数设置 控件A ...

  • 2018-10-21

    1.登录界面的效果图 2. 登录界面实现的功能描述 实现不同用户类型登陆 3. 登录界面各控件的参数设置 控件A ...

  • iOS-判断两个控件是否有重叠

    目录 一、父控件相同的两个控件的重叠判断二、坐标系转换三、不同父控件的两个控件的重叠判断四、总结 一、父控件相同的...

  • week51 坐标变换与坐标系变换

    坐标转换是一个坐标在不同坐标系下的表示,而坐标系转换不同坐标系的相对位姿关系。 TF介绍TF(TransForm)...

  • 2018-10-21

    一、登录界面设计 二、登录界面实现功能 三、登录界面各控件的参数设置 控件1 控件2 控件4 四、重要方法描述 角...

  • 2018-10-21

    一、登录界面设计 二、登录界面实现功能 三、登录界面各控件的参数设置 控件1 控件2 控件4 四、重要方法描述 角...

  • 商超系统登陆界面 廖世豪

    一、登录界面设计 二、登录界面实现功能 三、登录界面各控件的参数设置 控件1 控件2 控件4 四、重要方法描述 角...

  • 1. UIView

    标签:获取子视图、添加子视图、坐标转换、Superview、UIview的常用属性 子控件的点坐标转化为父控件的坐...

网友评论

      本文标题:cocos2dx不同界面下控件的坐标设置与转换

      本文链接:https://www.haomeiwen.com/subject/sccpiftx.html