передача параметра для импорта позднего связывания - PullRequest
0 голосов
/ 08 апреля 2020

Я нахожусь в процессе создания игры с использованием Phaser. js (версия 3.20.1), и я хочу иметь этот одноэлементный класс под названием TimeTracker, который бы отслеживал время игроков, когда в игре происходят определенные события. Так что любая сцена может вызывать

 TimeTracker.AddTime(3)

Но моему TimeTracker также необходим доступ к экрану пользовательского интерфейса для отображения сообщений пользовательского интерфейса. Теперь с другими объектами я инициализировал сцену пользовательского интерфейса в методе создания Game Controller

this.UI = this.scene.get('UI');

, а затем передал ее в конструктор других объектов

this.tableD = new D(this.UI, this.Attributes);
this.tableF = new F(this.UI, this.Attributes);

Но с тех пор TimeTracker такое синглтон, как мне написать следующий псевдокод?

import TimeTracker from '../gameObjects/TimeTracker'(this.UI);

Поскольку пользовательский интерфейс еще не существует.

Кроме того, при вводе этого текста мне интересно, должен ли я go с одноэлементным подходом или просто создайте один экземпляр в create и передайте его также как UIScene

Есть ли лучшая практика программирования при совместном использовании одного экземпляра класса между многими классами (Scenes in Phaser)?

...