所有设备的Cocos2d物理都不一样

问题描述 投票:0回答:1

我正在使用cocos2d-x和chipmunk开发网络演示游戏。当我(ApplyImpuse())对一个设备中的一个sprite发送并将Vec2力发送到另一个设备并将相同的脉冲应用于sprite时,我遇到物理问题,模拟与我在第一个设备中得到的非常不同。

我用不同的设备测试了很多次。

注意:当我触摸屏幕时,我不使用任何自定义更新方法,只需将ApplyImpulse()应用于精灵。

任何人都可以描述这个问题并提出任何解决方案吗?

如果我切换到Box2D会解决这个问题吗?

谢谢。

cocos2d-x chipmunk
1个回答
1
投票

不能。在许多设备上进行确定性模拟的唯一方法是使用(或重写)物理库来使用定点数学,然后处理带来的所有限制。

几乎不可能从不同CPU,编译器,平台甚至大多数次要代码更改的浮点数中获得确定性结果。例如,编译器可以将a*b + a*c简化为a*(b + c),但由于浮点数的精度有限,因此结果可能不完全相同。

Contraption开始使用香草花栗鼠,但最终使用固定点重写了它的重要部分:http://www.moddb.com/members/kevryan/blogs/the-butterfly-effect-deterministic-physics-in-the-incredible-machine-and-contraption-maker

© www.soinside.com 2019 - 2024. All rights reserved.