求解惑,坐标从世界坐标系转化到屏幕坐标系

  • 调用方式:

      let cameraNode = cc.Camera.findCamera(cc.director.getScene());
      let camera = cameraNode.getComponent(cc.Camera);
      let res = camera.getWorldToCameraPoint(cc.v2(430, 270));
      console.log('camera', res);
    
  • 输出结果:

按照我的理解,转换到屏幕坐标系后,以左上角为远点,坐标应该是(430, 370)才对啊 ?

求解惑~

        let size = {}
        if (node.__classname__ == "cc.Node") {
            let sysInfo = wx.getSystemInfoSync()
            let rect = node.getBoundingBoxToWorld()
            let ratio = cc.view._devicePixelRatio
            let scale = cc.view.getScaleX()
            let factor = scale / ratio

            size = {
                x: rect.x * factor * ratio,
                y: (sysInfo.screenHeight - (rect.y + rect.height) * factor) * ratio,
                width: rect.width * factor * ratio,
                height: rect.height * factor * ratio
            }
        }

在微信上, 这样可以转成屏幕坐标

有一部分抄的别人改的,转出来,掉微信的一些API是没有问题的

你这是在浏览器上跑的代码吧 浏览器webgl是基于OpenGL ES 2.0 而OpenGL的坐标系原点就在左下角哦

不是,是在Android设备上运行的代码