ccc用什么怎解决浮点计算一致性问题?

关注,同问

同求,同问

1赞

全部用int类型怎么样,不用float类型。比如1 表示 1%或者千分1

我们项目就是这样做的,全部int类型

你们有用物理引擎吗,还是自己模拟的

你们是帧同步的竞技游戏项目吗?

这么多人同求,没有人知道吗

mark

这还不好解决…所有地方都用整数 然后有小数的地方只有df df 扩大1万 每个计算的地方 计算之后再除以1万.
例如 df=0.0165 然后改成 df=165 最后除以1万

另外 好多帧同步demo 实际是有问题的. 不能用update里面的dt

1赞

你代码用int, 但引擎里面的代码还是用float的…所以需要定制引擎才可以

持续关注

关注中,接触JS没有多久,前几天也遇到这个问题了

关注mark

逻辑运算放大10000倍算呢?渲染坐标除10000,有误差也无所谓

继续继续

渲染坐标不用除1000,因为渲染的坐标是根据 逻辑坐标和渲染的坐标 插值计算出来的

逻辑坐标永远用整数计算,渲染坐标可以有小数,只要逻辑坐标不乱,渲染坐标插值计算那点点误差影响不大

2赞

那怎么update?想不通。自己用setInterval、schedule?

其实是能稍微一致性的,我现在初步用乘1000、取整(praseInt)、再除1000的方法改了一下box2d,效果还行,但是因为JS没有整型这个概念,物理计算里面又非常多计算,然后JS又不能重载运算符,搞到这种方式性能太低了,而且改写起来贼恶心麻烦。。。

之前的项目都是用U3D,就没这么蛋疼。。就是要自己用int跟long定义Vec2等等的类型,再实现里面需要的方法而已。。

持续关注