javascript - 添加 JavaScript 的服务器端库

标签 javascript node.js socket.io shared-libraries

我目前正在使用node.js和socket.io将我的离线游戏编码为在线游戏

在我的游戏中,我使用 p5.js 库中的向量来存储玩家的位置、与碰撞相关的运动等。

但是,服务器端(名为“server.js”的txt文件)没有像客户端那样的p5.js,因此我无法使用矢量发送有关玩家的信息。

这是我的问题:如何使 server.js 文件能够访问我的 p5.js 库?

注意:简单地发送 x 和 y 值,然后使用它们来制作向量将是一个困难的解决方案,因为我将不再能够发送包含所有玩家的所有信息的单个数组。此外,敌人、食物、踪迹位置等等也取决于向量。隐藏所有这些将很难编码。

最佳答案

你想要做的事情很简单,但在你完全理解所涉及的所有部分之前,它不会感觉简单,而鉴于你目前的水平,我担心这至少需要几个月的时间。

How could I make the server.js file have access to my p5.js library?

您的 p5.js 是仅浏览器的库,还是可以将其作为模块导入到服务器中?如果是第二个选项,您只需让服务器访问它即可:

const p5 = require('p5.js');

请记住:

  • 服务器应该处理玩家的位置、移动和 Action ,这样他们就无法作弊。
  • 客户端应该只是来自服务器的信息的可视化显示,并将玩家按键输入发送到服务器。

因此,除非您想进行客户端预测和实体插值(我对此表示怀疑,因为您才刚开始),否则请保持简单。还不需要在客户端和服务器之间共享库。

关于javascript - 添加 JavaScript 的服务器端库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44477268/

相关文章:

JavaScript:数字等级到字母等级

javascript - NodeJS 中的 for 循环和await 会返回什么?

javascript - 如何通过 Node.js 中的流传输等待的异步值?

mysql - NodeJS + Socket.IO + Mysql

javascript - 为什么 fetch 在捕获错误后仍返回?

javascript - 如何从对象数组中的每个对象中取出两个元素并创建一个新元素

javascript - 在 Express 应用程序初始化期间加载 JSON 文件

使用 Socket.io、ExpressJS 和 Nginx Ingress 的 Kubernetes Websockets

javascript - 使用socket.io与dojo MultipleDefine错误

javascript - 如何在任何级别递归地更改 JS 对象/JSON 值?