别说cocos做不了物理同步,几行代码助你轻松实现物理同步

不同步状态,全都是客户端按帧独立计算

不使用平台的三角函数,自己加实现确实可以解决问题,不知道楼主项目里是不是这么做的?@sixian

需要的1234

如果做了这些步骤,那么理论上没有就没有不同步的了,除非还有其他未知因素导致结果不一致,楼主的项目应该没啥毛病,虽然我没买:joy:

想要排除这些函数的计算,那就等于是在重新改造物理引擎了,但是看楼主的说法似乎并不是这么搞的。

别看了。。。看这个就是纸上谈兵,根本就不需要要使用任何函数,简单的四则运算,不同的机器结果都可能会不同,我是实际测出来过的。你们实锤一下再下结论的好。

举个简单的例子:
56/100 我遇到过有人的机器计算结果是0.5600000001
(大概是两三年前的时候测试过这块)

1赞

我上面还漏了一点,在部分架构不同的设备上面是会出现你说的这种情况,这里也有说明,因为部分架构扩展了浮点数精度,所以和最低要求精度的计算结果可能会有所不同,但是同架构的应该不会有这个问题

我当时测试时候用的是一台安卓魅族(好像是联发科的U),另一台是苹果,而且我发现并不是所有运算都有差异,当时测了好久,也只测出一两个实例(当然我没发现的肯定有)。

浮点数在不同硬件上是无法保证完全一致,但在很多硬件上又能相互一致,所以很难看出来问题,帧同步最难的不是技术流程,而是当发现不同步出现的时候怎么去fix,没有健壮的体系去支撑这个bugfix,只能说谁用谁知道。加油:)

我这边就浮点数精度问题,使用decimal计算,precision:9,然后mac机和安卓都会对不上,已经不相信js能做准确的小数计算了

而且刚刚就是mac机web上测试,简单的小数加法,出现了0.000002的误差导致判断出错,不得已把precision改到12才正常,我人都傻了,反正测试阶段,估计真机上卡到爆,后续再说吧,真的js感觉一点都不好用

1赞

现在别人都是可以to cpp 了

意思是计算判断都放c艹里?然后js就拿个结果展示?

我的意思是u3d c#都可以打包成cpp了 我们还在js里面写脚本 游戏逻辑消耗就比别人高得多

大家讨论的好激烈,要不来我这看看。我这用了一个取巧的方法支持了物理同步
https://store.cocos.com/app/detail/3426

1赞

简单的测试后,3D物理似乎也能完美同步,每一帧的坐标和角度都完全一致 :smiley:

3D demo来了

2赞

更新:

  • 体验地址换成国内服务器,现在秒进
  • 2.x版本box2d支持wasm.ios小游戏物理新能提高5倍.(3.x版本就等官方支持了或者用论坛提供的方案)

更新:

  • 微信小游戏支持可靠的udp传输.

大佬~连接无效了 是下架了么~~