creator3d物理引擎的bug

做了个联网的游戏,给刚体施加力,刚体在谷歌浏览器和ie移动距离不同。谷歌浏览器移动的比较快,ie比较慢。刚开始以为是帧率不一样,我把cc.PhysicsSystem.instance.deltaTime设置成一样,还是不行。到底是什么导致两边,不是网络延时造成的,两个浏览器里观察到刚体是同时移动的。

信息量不是很够,这里假设是使用的固定时间,即每帧模拟一次,每模拟执行一步。这种情况下 deltaTime 是不生效的,如果没有网络时延,那么应该是两边的游戏帧率不一致导致的

???ccc的物理引擎修改过?支持同步了?

你好,我详细描述下,

通信方式:客户端点击移动后,发送消息给服务器告诉他自己往哪个方向移动,服务器再向所有用户推送移动信息。让客户端自己模拟移动

客户端移动的方式是:给刚体施加一个固定的速度,摩檫力已经设置为0.人物在速度的所用下移动。

如果是延时造成的不同步,那么应该总是操作者移动快,在别人屏幕里的人物移动慢,但是观察到的现象不是这样子,谷歌浏览器总是移动最快,不管执行操作的那个人是不是谷歌浏览器的客户端。原生安卓和ie移动都比谷歌慢而且慢挺多的。是差别很大肉眼可见的移动速度不一样。猜测是谷歌的帧率太高,有没有办法,让客户端不管在哪个平台都按照固定的帧率去模拟物理运动吗?我试过不断的发送自己的坐标去做同步,但是人物移动没有用物理引擎去模拟的那样平顺,会有顿挫感,现在想做的同步方式就是物理模拟+每隔一小段时间向服务器发送自己的位置信息来做同步。

不能直接用物理引擎做同步,不同客户端模拟出来的运动是不一样的。。。

可以看各平台性能面板上的数据的帧率

有没有办法,让客户端不管在哪个平台都按照固定的帧率去模拟物理运动吗?

在 useFixedTime 下,游戏的帧率决定了物理模拟的次数,游戏运行一帧就会执行一次模拟,并且模拟固定一步。
所以各平台的游戏帧率是一致的,运动的表现就是一致的