我在试着做操纵杆
class JoystickPlayer extends SpriteComponent with HasGameRef {
JoystickPlayer(this.joystick)
: super(
anchor: Anchor.center,
size: Vector2.all(100.0),
);
/// Pixels/s
double maxSpeed = 300.0;
final JoystickComponent joystick;
@override
Future<void> onLoad() async {
sprite = await gameRef.loadSprite('layers/player.png');
position = gameRef.size / 2;
}
@override
void update(double dt) {
if (joystick.direction != JoystickDirection.idle) {
position.add(joystick.velocity * maxSpeed * dt);
angle = joystick.delta.screenAngle();
}
}
}
但是我得到一个编译错误:
未为类型“JoystickComponent”定义getter“velocity”
我使用的是Flame 1.8.2 link
1条答案
按热度按时间h5qlskok1#
JoystickComponent
没有速度场,但它有一个relativeDelta
场,你可以使用,这是旋钮从操纵杆中心到边缘的百分比和方向。例如,如果你把旋钮完全向右拉,
relativeDelta
将是Vector2(1.0, 0.0)
,完全向左拉,Vector2(-1.0, 0.0)
。所以你可以使用它非常类似于你如何尝试: