1

是否可以从火焰引擎游戏小部件导航到其他 Flutter 小部件?

下面的应用程序会立即加载游戏小部件。如何在 Game 小部件之外导航到另一个 Flutter 小部件?

Flutter 版本:2.2.3
Dart 版本:2.13.4
Flame Engine 版本:flame-1.0.0-rc8

主要.dart

import 'package:flame/flame.dart';
import 'package:flame/game.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:my_game.dart';

void main() {
  runApp(
    GameWidget(
      game: MyGame(),
    ),
  );
}

my_game.dart

import 'package:flame/extensions.dart';
import 'package:flame/game.dart';
import 'package:flame/gestures.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';

class MyGame extends BaseGame with TapDetector {
    @override
    void update(double dt) { /* TODO */ }

    @override
    void render(Canvas canvas) { /* TODO */ }

    @override
    void onTapUp(TapUpDetails details) {
        // How to navigate outside of the game widget?
    }
}
4

1 回答 1

1

你可以做两件事:

  • 从 Flutter 中放入GameWidgetaStack并处理导航,并在认为必要时Navigator将其删除并添加到小部件树中。Flutter 导航文档GameWidget
  • 改用 Flame 中的OverlaysAPI 来处理 Flame 中的状态。火焰文档

为了使用叠加层,您可以在创建时添加想要访问的叠加层,GameWidget然后调用game.overlays.add以渲染特定小部件并game.overlays.remove停止渲染它。

我确实建议您从 升级rc8rc13,因为文档适用于该版本,而且总体上更稳定。

于 2021-08-20T09:45:01.003 回答