別のタブへ移ったあとに敵が飛んだり、制限時間だけ減ったりする問題を防ぐため、止めるものと再開するものを整理します。
この記事でわかること
- 非表示になったときの扱いを決める
- 経過時間と押しっぱなしの入力をリセットする
- オンライン対戦では相手との時間の関係も考える
先に「離れた間も進めるか」を決める
ひとり用のアクションなら、画面を見ていない間の失敗を避けるために一時停止する設計を検討できます。放置型なら時間を進めることもあります。どちらが正しいかではなく、ゲームとして期待する動きを先に決めます。
オンライン対戦では、自分の画面だけを止めても相手やサーバーは進みます。タブを離れたときの案内と、復帰後に状態を取り直す手順を、ひとり用とは分けて考えます。
画面の非表示を、状態の切り替えに使う
Page Visibility APIでは、文書が表示されているかを確認し、その変化を受け取れます。一方で、非表示中の描画コールバックが止まることもあります。描画が止まったからゲーム全体も安全に停止した、と決めつけないようにします。
停止時は、移動キー、ドラッグ、効果音、アニメーション、ゲーム内タイマーをそれぞれ点検します。再開時に前の時刻との差をそのまま計算すると、大きな時間を一度に処理してしまうため、再開の基準時刻を作り直します。
再開のテストは「操作中」に行う
移動キーを押したままタブを切り替え、戻った後に勝手に動かないかを確認します。スマートフォンでは画面ロックからの復帰も試し、再開ボタンが押せるかを確かめます。
- 移動中に別タブへ移る
- ドラッグ中に画面をロックする
- 音を消した状態で離れて戻る
- 長く離れた後に再開する
参考にした情報源
情報確認日:2026.10.14。引用画像・投稿の埋め込みは使用していません。