0

我目前正在将 Nape 物理引擎用于 ActionScript 3.0 中的“Peggle”风格游戏。

在此处输入图像描述

它非常易于使用,运行流畅。然而,我在使用 Nape 时遇到的唯一困难是重放完全相同的模拟。

即使我在整个游戏过程中为它提供相同的时间步长值,它似乎在计算中也有足够的“错误”,以至于球每隔一段时间就会撞到不同的钉子(从头开始),有时甚至会或多或少地产生点燃钉子。

所以我的问题是:

是否有任何其他用于 Flash 的物理引擎可以在每次重新启动时以完全相同的方式重现给定的模拟?

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


只是为了检查我已经在 Nape 尝试过的任何东西:

  • 球在比赛开始时重置到相同的位置和旋转。
  • 球的初始速度是在用户点击时设置的,因此这应该覆盖从上一轮结转的任何速度。
  • 钉子不动(它们是静态的),所以没有必要重新设置它们。
  • 接球的部分仅由静态盒和传感器组成,因此也没有必要重新设置它们。
4

1 回答 1

-1

Citrus 引擎提供与 TimeShifter 类似的功能,您可以检查它运行演示Braid(按 [SHIFT] 回到时间)、TimeShifter API

于 2014-08-20T18:09:01.013 回答