【发布时间】:2012-03-05 08:41:40
【问题描述】:
我们正在使用 Corona SDK 及其物理引擎沿某种景观(例如 Tiny Wings)移动对象,我们有一个关于位置校正的问题。假设一个盒子沿着连绵起伏的丘陵行进,但它的位置是在另一个设备上计算的。每秒几次,您会收到:
- 更新的位置
- 盒子的速度
- 发送信息的时间
所以我们知道该信息已有 X 毫秒的历史,并且想知道它现在应该在哪里(假设它受到物理影响)并继续模拟,直到我们得到另一个更新。 现在,我们尝试简单地将速度乘以自包裹发送以来的时间量,但正如您可以想象的那样,如果地形弯曲/不平坦,这会表现得非常糟糕。
有没有办法说:“停止一切,给我这个盒子在 X 毫秒内物理作用于它的位置,然后恢复游戏”而不实际停止所有游戏 X 毫秒?
【问题讨论】:
-
不清楚你在问什么。 “停止一切”是什么意思?
-
我推荐gafferongames.com/game-physics/networked-physics,尤其是cmets中点对点网络物理的讨论
-
是的,您可以进行仔细的物理模拟,根据 X 毫秒前的状态确定盒子现在可能在哪里,并显示出来。您可以随着时间的推移扩展模拟,并在有更新时对其进行调整。这是否回答了您的问题,还是您需要更多?
-
@user964625 你解决了吗?答案有帮助吗?
标签: networking mobile physics coronasdk multiplayer