Lance.gg在多人HTML5游戏中无法同步

3
我正在制作一个使用 HTML5 的多人游戏。我找到了 lance.gg 并试着玩了一下,然后修改了乒乓球游戏。修改如下:
  • 移除挡板(只留下球)
  • 将重力设置为 (0, 0.1)
  • 每次按下空格键时,设置Ball.velocity.y = -3

结果见https://youtu.be/MmQOqR71Df0。正如您所看到的,它并不能真正地在窗口之间同步。我该如何使其在多个玩家之间平滑移动?

1个回答

1

Ball.js 类定义了以下 getter:

get bendingVelocityMultiple() { return 0.0; }

这将指示客户端忽略服务器的速度更新。结果是客户端和服务器速度不同步,导致你所捕获的视频。
如果您设置为:
get bendingVelocityMultiple() { return 0.8; }

那么问题就会消失。然而,将bendingVelocityMultiple设置为零在其他情况下可能也很有用,例如,如果你想在玩家失去时将球移回中心。

查看游戏对象文档


谢谢。我明白了。你能告诉我如何创建一个地面对象吗?就像当球撞到地面时,它停止下落。还有如何检测它是否撞到了一些特殊形状的其他物体? - boygiandi
1
你可能需要将这个问题作为一个单独的问题来询问。但是问题的要点是,由于地面不需要与所有玩家同步,因此您可能不需要为地面创建游戏对象。 - Gary Weiss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接