Javascript 节点JS中缺少名称ReferenceError

Javascript 节点JS中缺少名称ReferenceError,javascript,node.js,socket.io,superglobals,Javascript,Node.js,Socket.io,Superglobals,在过去的4周里,我一直在一个基于NodeJS和Express的多人游戏中工作。游戏在/lib/文件夹中有几个不同的类 那么,让我们关注2: Game.Js Player.Js 我遇到的问题是,我不能从Player.Js调用游戏的方法,同时也可以从game.Js调用Player.Js的方法 由于文件Bullet.Js正在从Player.Js触发一个respawn方法: players[i].respawn(); 我想我也可以从Player.Js执行一个游戏方法。。。到目前为止,我还不能想出一

在过去的4周里,我一直在一个基于NodeJS和Express的多人游戏中工作。游戏在/lib/文件夹中有几个不同的类

那么,让我们关注2:

  • Game.Js
  • Player.Js
我遇到的问题是,我不能从Player.Js调用游戏的方法,同时也可以从game.Js调用Player.Js的方法

由于文件Bullet.Js正在从Player.Js触发一个respawn方法:

players[i].respawn();
我想我也可以从Player.Js执行一个游戏方法。。。到目前为止,我还不能想出一个解决办法

var player = game.all_player_info(socket.id);
            ^
ReferenceError: game is not defined
at Player.damage (C:\Users\...\Desktop\dos\...\lib\Player.js:319:21)
at Bullet.update (C:\Users\...\Desktop\dos\...\lib\Bullet.js:98:18)
at Game.update (C:\Users\...\Desktop\dos\...\lib\Game.js:199:64)
at Timeout._onTimeout (C:\Users\...\Desktop\dos\...\server.js:751:8)
at ontimeout (timers.js:386:11)
at tryOnTimeout (timers.js:250:5)
at Timer.listOnTimeout (timers.js:214:5)
文件:

https://github.com/penumbragames/tankanarchy/blob/master/lib/Player.js
https://github.com/penumbragames/tankanarchy/blob/master/lib/Game.js
https://github.com/penumbragames/tankanarchy/blob/master/lib/Bullet.js
如果您尝试使用socket.io。。。它在Game.Js上运行得很好,但在Player.Js或Bullet.Js中似乎超出了范围

我显然是新来的节点。。。但是:

1。有没有办法从Bullet.Js或Player.Js调用游戏方法? 2.有没有办法从同一个源使用socket.emit

目标:

在bullet.Js上发生事件时,找到向聊天室发送信息的方法

此外,有人能推荐一个好的可视化软件/应用程序图表来映射类、类和方法吗

亲切的问候!!
克里斯,

在候机楼
npm install gamejs npm install player.js
您在调用之前导入了游戏吗?是的,我导入了,似乎一切都发生在游戏中。更新循环,所以我将Bullet和player的方法直接移动到游戏中。。。当然,在调整了方法之后,它是这样工作的,但我想知道为什么它不是这样工作的。问题的相关代码必须直接粘贴到问题中,并以代码的形式正确格式化。此处不允许将理解问题所需的代码仅放在外部链接中。这是因为随着时间的推移,外部链接有消失或修改的习惯,这使得这个问题对于正在探讨的特定类型的问题来说毫无用处。