1

Flutter 的游戏/动画包“flame”有几个教程,其中第二个(链接)由于Undefined class 'TapDownInfo'.

我需要哪些内容,或者与早期版本的颤振 SDK 相关?(目前sdk: ">=2.12.0 <3.0.0"flame: ^1.0.0-rc9

@override
void onTapDown(TapDownInfo event) {
  final buttonArea = buttonPosition & buttonSize;
  isPressed = buttonArea.contains(event.eventPosition.game.toOffset());
}
4

2 回答 2

1

该教程不存在rc9,如果您想要特定于某个版本的教程,则必须在 git 中查看该标签。例如: https ://github.com/flame-engine/flame/tree/1.0.0-rc9/tutorials

如果要运行该教程,也可以克隆火焰存储库,或者依赖main分支而不是rc9.

我们很可能会rc10在今天或明天发布,其中将包含该教程。

以下是您可以依赖main的方式pubspec.yaml

dependencies:
  flame:
    git:
      url: https://github.com/flame-engine/flame.git
      path: packages/flame
      ref: main

编辑:1.0.0-rc10现已发布,因此您可以直接使用该版本的教程。

于 2021-05-04T09:55:18.093 回答
0

对于1.0.0-rc10. (我同意好的文档(对于最新版本)在真正发布之前有时更难找到)。

对于你的问题,这取决于你是否谈论你的主要游戏组件(那个extends BaseGame)以及你是否有with HasTapableComponents

如果它是你的mainGame extends BaseGame with HasTapableComponents,它应该像这样被覆盖:

  @override
  bool onTapDown(int pointerId, TapDownDetails details) {
    super.onTapDown(pointerId, details);
    // Your code
    return true;
  }

在其他子组件上是这样的:ExitButton extends PositionComponent with Tapable,如果没有pointerId.

  @override
  bool onTapDown(TapDownDetails details) {
    super.onTapDown(details);
    // Your code
    return true;
  }
于 2021-05-11T22:48:52.703 回答