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);
ゲームを終了する良い方法ですか、それとももっと最適化された別の方法はありますか?
ありがとう