dart 未为类型“JoystickComponent”定义getter“velocity”

9lowa7mx  于 2023-09-28  发布在  其他
关注(0)|答案(1)|浏览(89)

我在试着做操纵杆

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

h5qlskok

h5qlskok1#

JoystickComponent没有速度场,但它有一个relativeDelta场,你可以使用,这是旋钮从操纵杆中心到边缘的百分比和方向。
例如,如果你把旋钮完全向右拉,relativeDelta将是Vector2(1.0, 0.0),完全向左拉,Vector2(-1.0, 0.0)
所以你可以使用它非常类似于你如何尝试:

@override
  void update(double dt) {
    if (!joystick.direction != JoystickDirection.idle) {
      position.add(joystick.relativeDelta * maxSpeed * dt);
      angle = joystick.delta.screenAngle();
    }
  }

相关问题