前のページはこちら
ここではゲームの一時停止と再開について学習していきます。
Contents
下準備
your_game.dartにupdateを再度追加します。ただしコードは下記のようなシンプルなものになります。worldCountが無いとエラーが出てしまう場合はYourGameクラスの直下に定義してあげてください。
@override
void update(double dt) {
super.update(dt);
//カウントアップ
worldCount++;
print(worldCount);
}実行をしてカウントアップするログが出れば次へ進みます。

pauseEngine
your_game.dartのstartButton追加の下にpauseEngine();を記載します。これで実行すると、カウンタ表示が進んでいない事が解ります。これがポーズ命令です。
@override
Future<void> onMount() async {
overlays.add('startButton');
pauseEngine();
}resumeEngine
今度はmakeCirecle関数の先頭にresumeEngine();を記載します。これがゲーム再開の命令となります。実行すると、この関数が実行された時(ボタンが押された時)からカウンターが進み始めるのが確認出来ます。
void makeCirecle() {
resumeEngine(); // ゲームを開始
//半径、X、Yのランダム値生成
var randomRadius = Random().nextInt(50) as double;
var randomX = Random().nextInt(300) as double;
var randomY = Random().nextInt(300) as double;
//CircleManを生成する。もうadd関数の中で生成しちゃう。
add(CircleMan(randomRadius, Vector2(randomX, randomY)));
if (children.query<CircleMan>().length > 50) {
overlays.remove('startButton');
}
}次のページはこちら