缺少名称,NodeJS中的ReferenceError

时间:2018-09-05 01:19:22

标签: 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触发重生方法:

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的范围。

我显然是Node的新手...但是:

1。有什么方法可以从Bullet.Js或Player.Js调用游戏方法吗? 2.有什么方法可以使用socket.emit吗?

目标:

找到一种在子弹事件发生时将信息发送到聊天室的方法。

此外,有人可以建议一个好的可视化软件/应用程序图表来映射类和方法吗?

亲切的问候!! 克里斯,

0 个答案:

没有答案