Cocos Creator 世界坐标转屏幕坐标

Cocos creator某一坐标转屏幕坐标(screen position),以前都是屏幕坐标转世界坐标。
先上代码为敬(只是提供一种思路,有更好的实现和建议欢迎留言)

    //Scene的设计分辨率是640*1136,适配方案是Fit width,所以下面的缩放按sW来计算的。
    //其他情况没有测试,情况应该差不多。先讲明适用条件,其他条件测试成功的欢迎留言。
    let size = this.panel.node.getContentSize();//panel的坐标转为屏幕坐标
    let width = size.width;
    let height = size.height;
    //屏幕分辨率
    let canvasSize = cc.view.getCanvasSize();
    //scene的设计分辨率
    let desiginSize = cc.view.getDesignResolutionSize();
    //Fit width适配方案,以width作为缩放基准
    let sW = (canvasSize.width / desiginSize.width);
    //计算panel在屏幕中的尺寸
    width = sW * width;
    height = sW * height;
    //转为世界坐标    
    let worldPos =  Wb.Pos.localConvertWorldPointAR(this.panel.node);
    let outPos = cc.v2();
    //设置scene的camera
    this.camera.getWorldToScreenPoint(worldPos, outPos);
    //x,y即屏幕坐标,creator的坐标原点在坐下,Android的在左上,需要做个转换。
    //x轴不变,y轴画布高减去y对应比例的值即为屏幕y坐标。(宽高都以sW为比例计算)
    let x = (outPos.x * sW) - (width / 2);
    let y = canvasSize.height - (outPos.y * sW) - (height / 2);

以上是获取屏幕坐标的代码,代码简陋只提供一种思路,不同机型测试显示的内容都会正确覆盖在panel上。

猜你喜欢

转载自blog.csdn.net/guo0625/article/details/128202715
今日推荐