You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flame 1.8.2中JoystickComponent无velocity属性编译错误求助

问题解决:Flame 1.8.2中JoystickComponent无velocity属性的编译错误

错误原因

你使用的Flame 1.8.2版本里,JoystickComponent并未提供velocity这个属性,而你参考的文档对应更高版本的API,因此触发编译错误:

The getter 'velocity' isn't defined for the type 'JoystickComponent'

修复方案

在Flame 1.8.2中,需要通过joystick.relativeDelta获取摇杆的归一化方向向量,再结合自定义的maxSpeed计算移动速度。修改update方法即可解决问题:

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

完整修复后的代码

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.relativeDelta * maxSpeed * dt);
      angle = joystick.delta.screenAngle();
    }
  }
}

内容的提问来源于stack exchange,提问作者Vaheed01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 05:57:39