javascript - 传递参数以导入后期绑定
问题描述
我正在使用 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 中的场景)共享一个类的一个实例时,是否有最佳编程实践?
解决方案
推荐阅读
- javascript - 在 JavaScript 中的 For 循环中计算对象的属性数
- c# - 从 ASP.NET Core 5.0 网站上传位图到 MongoDB
- python - 用 html 文件实现 css 不起作用
- c# - JWT 令牌未在指定时间内过期
- algorithm - 使用 dp 具有特定条件的可能数组的数量
- python - “未找到导入 tensorflow 模块”仅在 jupyter 笔记本上,但不在 jupyter 实验室或终端上
- c - 在c中的函数中通过指针传递参数值
- reactjs - 在 mobx 中调用操作时组件不重新渲染
- gcc - 由于 GCC 7.3 未编译 C 程序,安装 Spark 失败
- reactjs - 如何在部分静态站点上的不同高阶组件中保持 styled-components 样式分开?