Festlegen, was sich bei geänderter Sichtbarkeit ändert
Pausieren Sie in einem Reaktionsspiel die aktive Partie, wenn document.visibilityState zu hidden wechselt. Halten Sie den Countdown an, löschen Sie den Zustand gedrückter Tasten und zeigen Sie nach der Rückkehr zur sichtbaren Seite eine Schaltfläche zum Fortsetzen an. Bei einem rundenbasierten Rätsel kann das Spielfeld unverändert bleiben, ohne dass ein Pausenbildschirm erscheint; der Ton kann trotzdem stummgeschaltet und die Animationsuhr zurückgesetzt werden.
Notieren Sie vor der Implementierung das erwartete Verhalten für einen Timer, eine sich bewegende Gefahr und eine gedrückte Taste. Wechseln Sie dann bei jedem Fall weg und kehren Sie zurück. Diese kleine Matrix fängt Fehler auf, z. B. wenn ein Schlüssel logisch gehalten bleibt oder ein Timer abläuft, während das Spiel nicht sichtbar war.
Zeitmessung vor dem Fortsetzen zurücksetzen
Reagieren Sie auf das Ereignis visibilitychange und trennen Sie die Pausenentscheidung vom Rendern. Setzen Sie bei der Rückkehr den Zeitstempel des vorherigen Frames auf den aktuellen Animationszeitstempel oder markieren Sie den ersten Frame nach der Rückkehr als Uhrenneustart. Sonst kann das nächste Delta die gesamte Zeit im verborgenen Tab umfassen und Objekte abrupt bewegen.
Verwenden Sie die Seitensichtbarkeits-API, anstatt sich nur auf Unschärfe und Fokus zu verlassen: Ein Fenster kann den Fokus verlieren, bleibt aber sichtbar, und die Sichtbarkeit vermittelt, ob das Dokument tatsächlich ausgeblendet ist. Halten Sie alle Richtlinien zum automatischen Speichern unabhängig; Pausenverhalten und Persistenz haben unterschiedliche Zwecke und sollten separat getestet werden.
Fragen zu Browsergame-Hintergrund-Tab anhalten
Wird requestAnimationFrame weiterhin in einem ausgeblendeten Tab ausgeführt?
Die meisten Browser pausieren Animationsrückrufe in Hintergrundregisterkarten oder versteckten Iframes, und Timer-Rückrufe können ebenfalls gedrosselt werden. Betrachten Sie diese Verhaltensweisen als Gründe, mit der Sichtbarkeit umzugehen, und nicht als genaue Uhr.
Sollte jedes Spiel pausieren, wenn es ausgeblendet ist?
Keine einzelne Richtlinie passt zu jedem Design. Unterbrechen Sie Spiele, bei denen eine unsichtbare Simulation die Herausforderung verändert. Bei rundenbasiertem Spiel kann es ausreichen, das aktuelle Spielbrett beizubehalten. Setzen Sie in jedem Fall Timing und Audio bei der Rückkehr bewusst zurück.
Weiterlesen
Etwas nicht mehr aktuell? Korrektur melden