不能吧,1/100在你手机上计算结果是0.01,在我手机上都可能不是0.01(0.0099999999),保证个dt有啥用呀
那你觉得呢,不做定点数据情况下,也能达到差不多效果,
那除了对dt的步进精度下手,还有什么相对接近办法?
误差也是一样误差,结果也是一样结果,
同步不就是要一样结果.
假如误差不一样,那也是极限的小数据,
大方向短时间内是不存在肉眼上的差异
短时间看着没差异,长时间碰撞相关,那差距就大了
1.所以,还可以补救余地,不断同步一些相关数据,来维持短时内状态。
2.在相同步进dt情况下,计算中间结果产生浮点误差,
万一所有得到的浮点误差都是一样,那结果就是一样的,
有谁有兴趣可以帮验证一下。假如不是,那按1条来修正。
不过我没验证过,看谁有兴趣去验证一下。
js 的精度损失,是固定,不是随机的,可以看下面,
https://zhuanlan.zhihu.com/p/100353781
总结:计算机存储双精度浮点数需要先把十进制数转换为二进制的科学记数法的形式,然后计算机以自己的规则{符号位+(指数位+指数偏移量的二进制)+小数部分}存储二进制的科学记数法,因为存储时有位数限制(64位),并且某些十进制的浮点数在转换为二进制数时会出现无限循环,会造成二进制的舍入操作(0舍1入),当再转换为十进制时就造成了计算误差。
我之前也这么想过,每帧同步关键数据,不过感觉这样只能做一些小demo
1.误差一样,结果就一样
2.误差不一样,需要短时间内维护同步
在碰撞是有误差就是,a碰撞了,b没碰撞。会有这种情况
你的demo是2d的,去试下3d的
3d数值都是小数数值
误差不可怕,可怕的是误差不一样,如果是一样那就是绝对同步
当然是100%同步我才会拿出来分享…2d 3d都一样
那我还要啥话说呢。
祝生意兴隆
只看到大家追问的地方还是说不清道不明,不过我本来也不买就不说话了
我自己就遇到个精度不一致的难受问题,用的decimal去计算的浮点数,precision设置的9,不知道是我使用问题还是本身就有问题,特么的网页和安卓真机效果都不一致,我就只能手动把出问题的地方取整了,反正偏差也不大就只能自己认了
同一设备上演示demo有啥意义?都是一个CPU算的,算到死也是一样!
你可以不同设备之间测试一下 
懒得测试,帧同步本身也是固定逻辑步长,固定逻辑步长计算整型还行,计算浮点数,那就呵呵了。骗自己可以,别愚弄大众
厉害啊
,也是一种实现的思路。 已下单
在不同平台上,一个简单的运算得到的结果都可能是不同的,不要抱有幻想了,我以前特意找设备验证过。。。
你的方案1其实是可以,大马力状态同步,不过我觉得只适用于简单类型游戏
可以,流弊啊
物理引擎是跑在服务器上吗?