HTML5 キャンバスと JavaScript を使用してゲームを開発しています。
ゲームの時間を計るには、今からシステムのミリ秒を取り、最後のフレームが発生したときからシステムのミリ秒を差し引きます。これにより、最後のフレームのレンダリングにかかったミリ秒が残ります。
これは正常に動作しますが、Firefox で新しいタブを開くと、キャンバスが Firefox によって一時停止されたように見えます。戻ってくると、現在のシステム時刻は、最後のフレームが発生したシステム時刻よりも数秒遅れており、すべてがジャンプするためです。その動きは、最後のフレーム時間に相対的です。
キャンバスが現在実行されていないこと、または Firefox (およびもちろん他のブラウザー) が別のタブに切り替わったことを検出する何らかの方法が必要です。これにより、ゲームを一時停止し、戻ったときに「最後のフレーム」を更新できます。ジャンプを防ぐための時間」。
何か案は?