如果我像这样在 Flame 中创建一个组件:
class MyComponent extends PositionComponent {
MyComponent() {
// Option 1
}
@override
Future<void> onLoad() {
// Option 2
}
}
onLoad
如果我在构造函数(选项 1)或方法(选项 2)中初始化我的组件有什么区别?
因此,如果您在将组件添加到游戏之前需要加载一些东西,例如图像,那么您需要进行加载,onLoad
以便游戏知道它不应该将您的组件添加到游戏中,直到一切就绪里面装了。例如:
class MyComponent extends PositionComponent {
@override
Future<void> onLoad() async {
final sprite = await loadSprite('flame.png');
}
}
因此,为了使您的代码保持一致,您可以在 中进行所有初始化onLoad
,即使您的所有组件都不需要它。
要知道的另一件好事onLoad
是,如果您使用的是HasGameRef
mixin,则将在gameRef
中将其设置为您的组件onLoad
,而不是在构造函数中。