Отсутствующее имя, ReferenceError в NodeJS - PullRequest
0 голосов
/ 05 сентября 2018

Я работал в течение последних 4 недель в многопользовательской игре на основе NodeJS и Express. В папке с папкой / lib / есть несколько разных классов.

Итак, давайте сосредоточимся на 2:

  • Game.Js
  • Player.Js

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу вызвать метод игры из Player.Js, в то время как можно вызывать методы Player.Js из Game.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. Есть ли способ вызвать методы Game из Bullet.Js или Player.Js? 2. Есть ли способ использовать socket.emit из того же?

Цель:

Найдите способ отправки информации в чат, когда событие происходит в bullet.Js.

Кроме того, кто-нибудь может предложить хорошее программное обеспечение для визуализации / построения диаграмм приложений для сопоставления классов и методов?

С уважением !! Крис,

...