不同屏幕分辨率 坐标_解决Cocos精灵y轴在不同分辨率下位置产生偏差

在Cocos Creator开发竖屏游戏时,使用fit width适配策略会导致精灵Y轴位置随高度自适应产生偏差。为解决此问题,可以获取不同分辨率下的画布可视区域中心点,并计算出偏差值。将设计分辨率下的可视中心Y轴值保存为全局变量,然后在添加精灵到场景时,将其目标位置减去该偏差值,确保精灵在预期位置显示。
摘要由CSDN通过智能技术生成

一般在使用cocos creator开发竖屏游戏时,常用的适配策略就是 fit width (固定屏幕的宽度,让高度自适应)

而这样的话,同一个精灵在不同的分辨率下,如果没有添加widget组件使精灵固定距离上/下,左/右的距离。那么精灵会随着画布(canvas)高度的自适应变化而y轴产生偏差,最直观的感受如下图

3e08a956377184ebeae9400c99dba6f2.png

精灵位置向上偏移了。

在代码中,我们是用左上角紫色盒子的世界坐标转换到白色盒子节点坐标下,得到一个和白盒子在同一坐标系的节点坐标。然后我们再将白色盒子的坐标设置成紫色盒子的坐标。
理论上这样做了,白色盒子的中心应该是与紫色盒子的中心一致。在设计分辨率下,它们的中心点坐标也确实一致了。但是为什么在另一个分辨率下就变化了呢?

self.node.addChild(tree);
tree.position = tree.parent.convertToNodeSpaceAR(positionWorld);

开篇就已经说到了,固定设计分辨率宽度的适配策略下,高度会自适应。因此,解决的办法就是获取不同分辨率下画布的可视区域中心点。

cc.visibleRect

这个属性是一个对象,它包含了当前画布的所有尺寸位置信息,如果你在控制台打印&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值