如何导航到 Flutter Flame Engine 游戏小部件之外的小部件
How to navigate to widgets outside of a Flutter Flame Engine game widget
是否可以从 Flame Engine 游戏小部件导航到其他 Flutter 小部件?
下面的应用会立即加载游戏小部件。如何实现在游戏小部件之外导航到另一个 Flutter 小部件?
颤振版本:2.2.3
飞镖版本:2.13.4
火焰引擎版本:flame-1.0.0-rc8
main.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?
}
}
你可以做两件事:
- 要么将
GameWidget
放入 Stack
并通过 Navigator
从 Flutter 处理导航,并在认为必要时删除 GameWidget
并将其添加到小部件树。 Flutter Navigation docs
- 使用 Flame 中的
Overlays
API 来处理 Flame 中的状态。 Flame docs
要使用叠加层,您可以在创建 GameWidget
时添加要访问的叠加层,然后调用 game.overlays.add
来呈现特定的小部件,并调用 game.overlays.remove
来停止渲染它。
我确实建议您从 rc8
升级到 rc13
,因为文档是针对那个版本的,而且总体上更稳定。
是否可以从 Flame Engine 游戏小部件导航到其他 Flutter 小部件?
下面的应用会立即加载游戏小部件。如何实现在游戏小部件之外导航到另一个 Flutter 小部件?
颤振版本:2.2.3
飞镖版本:2.13.4
火焰引擎版本:flame-1.0.0-rc8
main.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?
}
}
你可以做两件事:
- 要么将
GameWidget
放入Stack
并通过Navigator
从 Flutter 处理导航,并在认为必要时删除GameWidget
并将其添加到小部件树。 Flutter Navigation docs - 使用 Flame 中的
Overlays
API 来处理 Flame 中的状态。 Flame docs
要使用叠加层,您可以在创建 GameWidget
时添加要访问的叠加层,然后调用 game.overlays.add
来呈现特定的小部件,并调用 game.overlays.remove
来停止渲染它。
我确实建议您从 rc8
升级到 rc13
,因为文档是针对那个版本的,而且总体上更稳定。