迁移到 flame v1.0.0
Migrating to flame v1.0.0
我正在从 Flame v0.29.4 迁移到 Flame v1.0.0-rc8
我找不到关于如何获取 initialDimensions
、如何通过 engine.widget
获取引擎小部件、如何初始化 Sprite
对象(之前通过 Sprite('path_to_asset_file')
),以及如何设置 SpriteComponent
的宽度和高度(之前通过 SpriteComponent.rectangle
)。
这是几个问题,所以我会给出几个答案:
- 如何获得
inititialDimensions
?
inititialDimensions
不再需要,onGameResize
在 onLoad
之前调用,这将为您提供游戏的大小。您还可以通过将 HasGameRef
mixin 添加到您的 Component
并调用 gameRef.size
.
来获取游戏的大小
- 如何获取flutter widget?
您现在将游戏包装在 GameWidget
中,而不是使用 .widget
:
import 'package:flutter/material.dart';
import 'package:flame/game.dart';
void main() {
final myGame = MyGame();
runApp(
GameWidget(
game: myGame,
),
);
}
- 如何初始化一个
Sprite
?
您通常需要 SpriteComponent
,而不是原始的 Sprite
。
创建 Sprite
:
class MyGame extends FlameGame {
Sprite player;
@override
Future<void> onLoad() async {
player = Sprite.load('player.png');
}
}
创建 SpriteComponent
:
class MyGame extends FlameGame {
SpriteComponent player;
@override
Future<void> onLoad() async {
final sprite = await loadSprite('player.png');
player = SpriteComponent(sprite: sprite);
// And you usually want to add your component to the game too.
add(player);
}
}
- 如何设置组件的大小?
只需执行 component.size = Vector2(width, height);
或 component.width = width;
+ component.height = height
我正在从 Flame v0.29.4 迁移到 Flame v1.0.0-rc8
我找不到关于如何获取 initialDimensions
、如何通过 engine.widget
获取引擎小部件、如何初始化 Sprite
对象(之前通过 Sprite('path_to_asset_file')
),以及如何设置 SpriteComponent
的宽度和高度(之前通过 SpriteComponent.rectangle
)。
这是几个问题,所以我会给出几个答案:
- 如何获得
inititialDimensions
?
inititialDimensions
不再需要,onGameResize
在 onLoad
之前调用,这将为您提供游戏的大小。您还可以通过将 HasGameRef
mixin 添加到您的 Component
并调用 gameRef.size
.
- 如何获取flutter widget?
您现在将游戏包装在 GameWidget
中,而不是使用 .widget
:
import 'package:flutter/material.dart';
import 'package:flame/game.dart';
void main() {
final myGame = MyGame();
runApp(
GameWidget(
game: myGame,
),
);
}
- 如何初始化一个
Sprite
?
您通常需要 SpriteComponent
,而不是原始的 Sprite
。
创建 Sprite
:
class MyGame extends FlameGame {
Sprite player;
@override
Future<void> onLoad() async {
player = Sprite.load('player.png');
}
}
创建 SpriteComponent
:
class MyGame extends FlameGame {
SpriteComponent player;
@override
Future<void> onLoad() async {
final sprite = await loadSprite('player.png');
player = SpriteComponent(sprite: sprite);
// And you usually want to add your component to the game too.
add(player);
}
}
- 如何设置组件的大小?
只需执行 component.size = Vector2(width, height);
或 component.width = width;
+ component.height = height