我正在使用 Flame 和 Flutter,并尝试添加一个绕其中心旋转的 SpriteComponent。我是初学者,对我来说太裸露了。
当我执行以下操作时它会起作用:
class Player extends SpriteComponent with HasGameRef<MyGame> {
Player({required this.sprite}) : super();
final Sprite sprite;
late SpriteComponent player;
@override
FutureOr<void> onLoad() {
player = SpriteComponent(
sprite: sprite,
position: Vector2(0, 0),
size: Vector2(150, 80),
anchor: Anchor.center,
);
debugMode = true;
add(player);
return super.onLoad();
}
@override
void update(double dt) {
angle += 0.01;
super.update(dt);
}
}
所以看起来是这样的:
但是当我想移动精灵一点并添加以下行时:
position: Vector2(200, 200),
现在它仍然围绕顶部的角旋转...我如何在自己的中心旋转精灵?
您的
SpriteComponent
组件内部有一个 Player
(这也是一个 SpriteComponent
),因为您在这两个组件上使用相同的精灵,所以我相当确定您只需要其中一个。
如果你删除内部的
player
你最终会得到这样的东西,这应该是你想要的:
class Player extends SpriteComponent with HasGameRef<MyGame> {
Player({required this.sprite}) : super(
position: Vector2(0, 0),
size: Vector2(150, 80),
anchor: Anchor.center,
);
@override
Future<void> onLoad() {
super.onLoad();
debugMode = true;
}
@override
void update(double dt) {
super.update(dt);
angle += 0.01;
}
}