首页 > 解决方案 > 传递参数以导入后期绑定

问题描述

我正在使用 Phaser.js(版本 3.20.1)构建游戏,我希望有一个名为 TimeTracker 的单例类,它可以在整个游戏中发生某些事件时跟踪玩家的时间。让任何场景都可以调用

 TimeTracker.AddTime(3)

但我的 TimeTracker 还需要访问 UI 屏幕来显示 UI 消息。现在使用其他对象,我所做的是在游戏控制器创建方法中初始化 UI 场景

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);

由于 UI 尚不存在。

此外,当我输入这个时,我想知道我应该使用单例方法还是只在 create 中创建一个实例并像 UIScene 一样传递它

跨多个类(Phaser 中的场景)共享一个类的一个实例时,是否有最佳编程实践?

标签: javascriptnode.jsphaser-framework

解决方案


推荐阅读