【问题标题】:Node.js Multiplayer Game using express and socket.io使用 express 和 socket.io 的 Node.js 多人游戏
【发布时间】:2017-03-21 13:47:20
【问题描述】:

这些天来,我正在尝试实现一个有 2 名玩家的简单多人游戏。 游戏逻辑在服务器端,即玩家的创建和移动。我还想实现在画布周围弹跳的球。 我该如何实施?在服务器端还是客户端?我认为最好在服务器上创建它们,但是我已经尝试过,并且创建还可以,但是之后当我将球的位置发送给客户端时,每个球都具有相同的位置,并且当服务器尝试移动球时他们'不移动,例如改变位置。最糟糕的是我无法渲染它们。 有人遇到过这种问题并解决了吗? 我该如何解决这个球弹跳的问题?

【问题讨论】:

    标签: node.js express socket.io multiplayer


    【解决方案1】:

    希望这个问题还为时不晚。构建多人游戏其实是一个很大的话题。您对问题中的许多概念有误解。

    首先,建议在服务器端有游戏逻辑,只有服务器才能决定球的真实位置和运动。这称为权威服务器。然后在客户端渲染球,这通常只是一个浏览器页面。您可以使用 Canvas API 或 WebGL 来实现它。如果只是 2D 游戏,Canvas API 就足够了。这意味着您将需要在服务器端和客户端执行相同的创建、更新和删除实体操作。您可能需要在服务器和客户端之间共享相同的球模型。由于您在双方都使用 javascript,所以这不是问题。

    基本多人游戏最重要的部分是服务器和客户端之间的通信。每当您在服务器上创建一个球时,您都需要将球信息发送给所有客户端。然后你需要在客户端创建相同的球。之后,您需要更新服务器上的所有球信息,并以固定的时间间隔发送给客户端。收到更新信息后,您可以在客户端上更改该信息,以便您的球可以“移动”。渲染它们很容易。您只需清除屏幕并将它们绘制到新位置即可。

    球的弹跳与碰撞检测有关。您可以搜索碰撞检测或实体命中测试以获取更多详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-22
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      相关资源
      最近更新 更多