2017-03-21 23 views
1

这些天我试图与2名球员实施一个简单的多人游戏。游戏逻辑在服务器端,这意味着玩家的创造和移动。我也想要实现在画布周围弹跳的球。 我该如何执行此操作?在服务器端还是客户端?我认为在服务器上创建它们会更好,但是我已经尝试过了,创建好了,但之后当我将球的位置发送给客户端时,每个球都具有相同的位置,当服务器尝试移动球时,不要移动,例如改变位置。最糟糕的是我无法渲染它们。 任何人都已经遇到过这样的问题并解决了它? 我该如何解决球弹跳的问题?Node.js多人游戏使用快递和socket.io

回答

1

希望这个问题还不算太晚。构建多人游戏实际上是一个非常重要的话题。你的问题中有很多概念都有误解。首先,建议在服务器端有游戏逻辑,只有服务器可以决定球的真实位置和运动。这被称为权威服务器。然后你在客户端渲染球,这通常只是一个浏览器页面。您可以使用Canvas API或WebGL来实现该功能。如果只是2D游戏,Canvas API就足够了。这意味着您需要在服务器和客户端执行相同的创建,更新和删除实体操作。您可能需要在服务器和客户端之间共享相同的球模型。既然你在双方使用JavaScript,这不会是一个问题。

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

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