哪个AS3物理引擎可以一致地重放模拟?

时间:2014-08-20 12:53:52

标签: actionscript-3 simulation physics-engine replay nape

我目前正在使用Nape物理引擎进行" Peggle" ActionScript 3.0中的样式游戏。

enter image description here

它非常易于使用,并且运行顺畅。但是,我遇到Nape的唯一困难就是重播完全相同的模拟。

即使我在整个游戏过程中提供相同的时间步长值,它似乎也有足够的"错误"在计算中,球偶尔会碰到不同的钉子(从头开始),有时甚至会产生或多或少的钉子。

所以我的问题是:

Flash是否还有其他物理引擎可以在每次重新启动时重现给定的模拟?

编辑: "录音"的想法每个帧的数据和回放的数据都被其他论坛抛弃了我已经问过这个问题了。但不幸的是,"重播"功能不是同一个用户查看他/她自己的球落场景。它将用于在不同机器上的玩家之间共享(例如:客户报告带有球掉落的错误,种子值为1234,我们打入1234并且应该能够看到相同的问题)。 因此,如果我们预先记录一堆场景(并且由此,我的意思是足以给予玩家幻觉他们实际上正在运行物理模拟),随机选择一个,并使用该随机ID作为识别特定场景的方式,这意味着我们需要在游戏中嵌入大量数据 - 如果物理引擎是确定性的,可以以其他方式保存。


只是为了检查我已经在Nape尝试的任何事情:

  • 将球重置到同一位置&在游戏开始时轮换。
  • 球的初始速度是在用户点击时设置的,因此这应该覆盖从上一轮结束的任何速度。
  • 钉子不动(它们是静止的),所以没有重置那些。
  • 接球的部分只包含静态盒子和传感器,所以重置这些部分也没有意义。

1 个答案:

答案 0 :(得分:-1)

Citrus Engine提供与TimeShifter类似的功能,您可以检查它运行演示Braid(按[SHIFT]以及时),TimeShifter API