phaser-framework - 在 Phaser 3 中处理场景组件的约定是什么?
问题描述
假设我有一个游戏场景,CarLevelScene,这是一个我必须驾驶汽车一定距离的关卡。我在场景的一个角落有一个“剩余距离”仪表,在另一个角落有一个“剩余燃料”仪表。为了支持单一职责,我想从 CarLevelScene js 文件中提取它。此外,在更新时,这两个仪表都依赖于一些共享数据(因为燃料取决于行驶距离)。
现在,我基本上做这样的事情:
let fuelGuageState;
let distanceGuageState;
export default class CarLevelScene {
init() {
fuelGuageState = new FuelGuageState(this); // have to pass in this to create game objects in the scene. Or do I?
distanceGuageState = new DistanceGuageState(this);
}
create() {
fuelGuageState.create();
distanceGuageState.create();
}
update() {
...
let distance = someCalc(...); // possibly from some distance model object
let fuel = someOtherCalc(distance, ...);
fuelGaugeState.update(fuel);
distanceGaugeState.update(distance);
}
}
我的问题是,这是在 Phaser 3 中创建和使用组件的传统方式吗?从本质上讲,它将使场景成为组件的组织者,只需将正确的数据提供给每个更新方法。感觉有点臭。有时间耦合和大量的依赖管理。
是否有官方文档处理代码中组件的适当组织?
解决方案
推荐阅读
- asp.net-mvc - 使用 asp.net mvc 在应用程序级别实现输出编码以防止 Xss 攻击
- express - 具有正确标头的 localhost 事件上的 CORS 错误
- java - 在 Spring Boot 中使用 hibernate-jpamodelgen 时出现“非法字符”错误
- python - AttributeError: 'function' 对象没有属性 'remove'
- python - 有没有一种快速的方法可以按多列将数据分类到 bin 中?
- react-native - 使用 Android 配置活动的 ReactNative
- django - APM Django - 如何将来自 Filebeat 的容器日志与来自 Kibana 中 ElasticAPM 的数据相关联?
- python - 循环打印数据来自输入用户的 zip 列表
- javascript - 将 Laravel 模型交给具有多个 JSON“深层”的 Vue.js 组件
- javascript - 如何检查对象数组是否是其他数组的子集