2

我正在使用 Flame 和 Flutter 开发一个简单的游戏。我正在关注本教程: 使用 Flutter 和 Flame 创建手机游戏 - 初学者教程

但是在我在教程行之后添加了一些代码之后:

flameUtil.addGestureRecognizer(tapper); 

出现下划线且onTap功能不起作用。

4

2 回答 2

0

库的APIflutter-flame不断发展,上面教程中的解决方案可能不再适用。

我很难从这个演示文稿中重新实现示例:https ://www.youtube.com/watch?v=sFpjEH-ok2s ,所以你并不孤单:-)

较新版本的flutter-flamelike 0.23.0,需要使其能够将TapDetectormixin 添加到您的BaseGame类中,如下所示:

class MyBaseGame extends BaseGame with TapDetector, DoubleTapDetector {
  @override
  void onTapDown(_) {
    add(RenderedTimeComponent(Timer(1)..start()));
  }

  @override
  void onDoubleTap() {
    add(RenderedTimeComponent(Timer(5)..start()));
  }
}

来源:https ://github.com/flame-engine/flame/blob/00ad86eb63aa54b411f1d080fec501dd7b671a81/doc/examples/timer/lib/main.dart

多亏了这一点,您的 BoxGame 初始化代码只是:

BoxGame game = BoxGame();
runApp(game.widget);

没有Utiland的声明TapGestureRecognizer

于 2021-02-07T20:53:30.390 回答
0

您可以使用TapDetector混合:

类 WarriorGirlGame 使用 TapDetector 扩展 FlameGame { @override void onTapDown(TapDownInfo info) { ... } }

于 2022-01-24T19:00:49.977 回答