Cocos creator某一坐标转屏幕坐标(screen position),以前都是屏幕坐标转世界坐标。
先上代码为敬(只是提供一种思路,有更好的实现和建议欢迎留言)文章来源:https://www.toymoban.com/news/detail-627566.html
//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上。文章来源地址https://www.toymoban.com/news/detail-627566.html
到了这里,关于Cocos Creator 世界坐标转屏幕坐标的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!