zoukankan      html  css  js  c++  java
  • Cocos Creator 坐标系 (convertToWorldSpaceAR、convertToNodeSpaceAR)

    版本:2.3.4

    参考
    cocos教程:坐标系和变换

    cocos的坐标系和其他引擎不一样。

    Egret中坐标系

    舞台的原点在左上角

    组件的原点也在左上角

    角度顺时针旋转为正数,逆时针旋转为负数

    Laya中坐标系

    和Egret一致

    Cocos坐标系

    和Laya、Egret的y轴朝下的,cocos的y轴是朝上的。

    角度顺时针是负数,逆时针是正数。

    而且cocos新建组件锚点0.5居中

    本地坐标转换到世界坐标

    //将节点坐标系下的一个点转换到世界空间坐标系。
    convertToWorldSpaceAR  
    
    //将一个相对于节点左下角的坐标位置转换到世界空间坐标系。
    //这个 API 的设计是为了和 cocos2d-x 中行为一致,更多情况下你可能需要使用 convertToWorldSpaceAR
    convertToWorldSpace
    

      

    cocos提供了2个API将本地坐标转换到世界坐标,其中convertToWorldSpace已经不推荐使用

     如上图

    Canvas1560x720,锚点(0.5,0.5)

    一个白色方块200x200,锚点(0.5,0.5),在距离左下角(200,200)的位置

    一个红色方块100x100,锚点(0.5, 0.5),在白色方块内部,距离白色方块中心点(50,50)

    局部坐标

    console.log(white.x, white.y);  //-580 -160
    console.log(red.x, red.y);      //50 50
    

      

    局部转全局坐标

    let whiteWorldPos = white.convertToWorldSpaceAR(white.position);
    console.log(whiteWorldPos.x, whiteWorldPos.y);  //-379.78647686832744 40
    
    let redWorldPos = red.convertToWorldSpaceAR(red.position);
    console.log(redWorldPos.x, redWorldPos.y);      //300.21352313167256 300
    

      

    局部转全局坐标

    let whiteWorldPos = white.parent.convertToWorldSpaceAR(white.position);
    console.log(whiteWorldPos.x, whiteWorldPos.y);  //200.21352313167256 200
    
    let redWorldPos = red.parent.convertToWorldSpaceAR(red.position);
    console.log(redWorldPos.x, redWorldPos.y);      //250.21352313167256 250
    

    全局转局部坐标

    let redLocalPos = red.convertToNodeSpaceAR(new cc.Vec2(250,250));
    console.log(redLocalPos); //0,0
    

      

    全局转局部坐标

    let redLocalPos = red.parent.convertToNodeSpaceAR(new cc.Vec2(250,250));
    console.log(redLocalPos); //50,50
    

      

  • 相关阅读:
    北大软件工程——第五周:UML
    北大软件工程——第四周:结构化分析方法2
    北大软件工程——第三周:结构化分析方法1
    linux挂载u盘、光盘、硬盘
    奇偶个数、数字特征值——第4周C编程练习
    时间换算、分队列——第3周C编程练习
    逆序三位数——第2周C编程练习
    回溯算法与分支限界法
    Tyvj1032
    Tyvj1032
  • 原文地址:https://www.cnblogs.com/gamedaybyday/p/13090533.html
Copyright © 2011-2022 走看看