求助:摄像机跟随主角移动不出现黑边并适配所有机型

  • 目前版本3.1.1

  • 摄像机跟随主角移动很常用的功能,我在做跟随的时候无非做个包围框

*设置个范围框

​ if (x <= minX) {
​x = minX;
​}

​if (x >= maxX) {
​x = maxX;
​}
​if (y <= minY) {
​y = minY;
​}
​if (y >= maxY) {
​y = maxY;
​}
​this.node.position = new Vec3(x, y, 1);

  • 好像camera没办法设置他的大小;

  • 我想了很多,通过相机的orthoHeight去计算camera的宽高。然而并没有实现适配
    在iphoneX上两边出现黑边。

  let scale = 1334 / 750;
   ​let cameraH = this.camera.orthoHeight;
   ​viewH = cameraH * 2;
   ​viewW = viewH * scale;

   ​maxX = (mapW - viewW) / 2;
   ​minX = -maxX;

   ​maxY = (mapH - viewH) / 2;
   ​minY = -maxY;
  • 在camera 和我设计像素一样1334*750时,我只需要拿地图的size - camera size 或者 - winSize.都可以,但是机型适配就是不行。我没办法控制camera大小。

  • 但是在适配机型时 不是大了就是小了。特别是Ipad 一塌糊涂 ,归根结底就是这个包围框 最大XY和最小XY 。没法完美的适配。我搜遍了论坛,都没弄出来。

  • 总结:就是实现摄像机跟随主角移动, 适配设备不出现黑边。求助大佬给个思路!!

可以使用视图的大小来代替相机的宽高, cc.view.getVisibleSize() 这个获取出来就是当前设备的可见的视图大小。

  • getVisibleSize是不是只有在真机或者在程序开发工具才有效果?我在流量器里切换各种设备获取到的 VisibleSize 都是1334*750我的设计像素



切换完设备,要刷新一下浏览器,我这边用的是2.4的,3.x的版本也是可以的


这个是3.1的


你项目设置里有什么设置吗,或者camera 我这里似乎不正常啊


那你可能是这边的适配勾选错了,竖屏要勾选适配宽度

恩,可以的,但是我的值为什么有很多浮点数 Size {width: 1632.7077747989276, height: 750}

这。。。我也不清楚了,@jare 大佬帮忙看一下?

哥们,这个获取视图窗口可见区域尺寸。解决我问题了, 还是我笨了,我就不和道去获取视图的size。

*虽然对你们大佬来说只是回复了几个消息,但对于我来说,这就解决了我一天的疑惑。万分感谢!

非常感谢,这个浮点数我不知道 ,但是问题解决了。非常感谢

好的,不客气,解决了就好!

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。