【问题标题】:Cocos2d physics is not the same across all devicesCocos2d 物理在所有设备上都不相同
【发布时间】:2017-12-13 16:07:35
【问题描述】:

我正在使用 cocos2d-x 和花栗鼠开发一个网络演示游戏。当我( ApplyImpuse() )到一个设备中的一个精灵并将 Vec2 力发送到另一个设备并将相同的脉冲施加到精灵时,我遇到了物理问题,模拟与我在第一个设备中得到的完全不同。

我用不同的设备对其进行了多次测试。

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

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

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

谢谢。

【问题讨论】:

  • 这应该是因为设备大小。您可以按设备大小的比例应用脉冲。

标签: cocos2d-x chipmunk


【解决方案1】:

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

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

Contraption Make 开始使用原版 Chipmunk,但最终使用定点重写了大部分内容:http://www.moddb.com/members/kevryan/blogs/the-butterfly-effect-deterministic-physics-in-the-incredible-machine-and-contraption-maker

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-06
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多