2

4 つのミニゲームを備えた小さな Flutter アプリを作成しています。

ゲームを起動して終了し、再起動するたびに、以前よりも遅くなります (FPS が低く、プレイすることさえできません...)。再びスムーズにする唯一の方法は、アプリ全体を再起動することです.

別のゲームを起動しているときに、ゲームが実行されていないことを確認するにはどうすればよいですか? FPS を失うのは、ゲームの 1 つが適切に強制終了されていないためだと思います。

SelectGame.dart でゲームを起動するときのコードのロジックは次のとおりです。

Navigator.push(
  context,
  MaterialPageRoute(
    builder: (context) => Car(
      appLanguage: appLanguage,
      user: user,
      level: "${100 + level * 10 + ID_CAR_ACTIVITY}",
      message: inputMessage,
    ),
  ),
);

ゲームを終了したとき:

if (Navigator.canPop(context)) {
  Navigator.pop(context);
} else {
  Navigator.pushReplacement(
    context,
    MaterialPageRoute(
      builder: (context) => MainTitle(
        appLanguage: appLanguage,
        userIn: user,
        messageIn: "0",
      ),
    ),
    //(Route<dynamic> route) => route is MainTitle,
  );
}

これが私の Car.dart の処分です:

  @override
  void dispose() {
    timerConnexion?.cancel();
    timer?.cancel();
    _timer?.cancel();
    timerRedirection?.cancel();
    _controllerTopCenter?.dispose();
    pauseTimer?.cancel();
    game.timerPause?.cancel();
    gameUI?.state?.dispose();
    super.dispose();
  }

そして、ゲームを再起動するとき:

Navigator.pushAndRemoveUntil(
    context,
    MaterialPageRoute(
      builder: (context) => new Car(
        appLanguage: appLanguage,
        user: user,
        level: game.getStarLevel().toString(),
        message: "fromRestart",
      ),
    ),
    (Route<dynamic> route) => route is Car);

ゲームを終了する良い方法ですか、それとももっと最適化された別の方法はありますか?

ありがとう

4

0 に答える 0