ポーズ

2023-06-26

pauseEngine

FlameGame に pauseEngineというメソッドがあります。 これを使うとゲームの動きを止めることができます。 復帰させる時は resumeEngine を呼びます。

公式ドキュメント https://docs.flame-engine.org/latest/flame/game.html#pause-resuming-stepping-game-execution
APIリファレンス https://pub.dev/documentation/flame/latest/game/Game/pauseEngine.html

stopTime

以前のルーター で使ったRoutestopTimeというメソッドがあります。 こちらは今表示しているRouteの動きを止めることができます。 復帰させる時はresumeTimeを呼びます。

APIリファレンス https://pub.dev/documentation/flame/latest/game/Route/stopTime.html

こちらはゲーム全体ではなく一部のRouteを止めるので、 「別の半透明なRouteを表示させて、そこでアニメーションを表示する」などの使い方ができます。

以下のドキュメントに半透明なアニメーションと共にポーズさせる例が載っています。

公式ドキュメント https://docs.flame-engine.org/latest/flame/router.html#routercomponent

動かす

単純に stopEnginestopTimeを呼び出す例です。

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

class PausePage extends StatelessWidget {
  PausePage({super.key});

  final game = PauseGame();

  @override
  Widget build(BuildContext context) {
    return GameWidget(game: game);
  }
}

どちらのボタンをクリックしてもカウントが止まることがわかると思います。

これで ポーズの実装ができました。

© 2023 tnantoka