我有一个移动的精灵,它在4个图像的循环上设置动画,使其看起来像是在一个地方行走。当我点击一个按钮时,我想让精灵向前移动一定的量。我试着寻找如何做到这一点,但这让我很困惑。我找到了Flame Game的这张解释效果的信息表,但我不知道如何将其应用于我所拥有的(https://docs.flame-engine.org/1.0.0/effects.html)。
这是使狗移动的类的构造函数:
Dog()
: super(
priority: 1,
playing: true,
scale: Vector2(1, 1),
size: Vector2.all(50),
) {
animation = SpriteAnimation.spriteList(runPictures, stepTime: 0.2);
position = Vector2(150.0, 150.0);
}
我想让狗在屏幕顶部移动100个像素,同时点击按钮,在上面的循环中移动。这个按钮会将它发送到一个类,该类会使它移动。如果有人能提供示例代码或有用的教程,那将非常有帮助。
您正处于正确的轨道上,您希望将MoveByEffect
添加到组件中。
我假设您已经设置了按钮,并且您可以从那里访问Dog
组件的实例,然后您只需将效果添加到该组件:
final dog = Dog(...);
// Or whatever callback you have for the button
void onTap() {
dog.add(
MoveByEffect(Vector2(0, -100), EffectController(duration: 1)),
);
}
这将使狗在一秒内向上移动100px。