Das Spiel rechnet jetzt in echten Gerätepixeln.
Der Befund: Phaser rechnet genau so viele Bildpunkte, wie die Spielfläche groß ist, und Scale.FIT dehnt das Ergebnis per CSS auf das Fenster. Auf einem hochauflösenden Schirm wurde also hochgerechnet — gemessen hatte das Schiff 112 echte Abtastpunkte, gestreckt auf 144 Bildschirmpixel. Das Canvas im Ausrüstungsfenster legt seine Fläche dagegen in Gerätepixeln an (clientWidth × devicePixelRatio) und bleibt dadurch immer scharf. Genau daher der auffällige Unterschied zwischen beiden Ansichten
Die Lösung: Die Spielfläche wird um den Gerätefaktor größer angelegt und die Kamera um denselben Faktor hineingezoomt. Die Spielkoordinaten bleiben dadurch exakt gleich — es werden nur mehr echte Bildpunkte gerechnet
- Fläche jetzt 1440×1920 statt 720×960 (bei Gerätefaktor 2), Canvas-Größe auf dem Schirm unverändert
- Phasers Kamera zoomt um ihre Mitte; der dadurch entstehende Versatz von (Fläche − Sichtfeld)/2 wird gegengerechnet. Er hängt nur am Gerätefaktor, nicht am Spiel-Zoom, deshalb bleibt das Herauszoomen bei Tempo unverändert
- Zeigerkoordinaten kommen in Flächenkoordinaten und werden zurückgerechnet — sonst zielt die Maus um den Faktor daneben
- Gedeckelt bei 2, weil die Füllrate quadratisch mitwächst
Nachgemessen: Sichtbarer Weltausschnitt im Streifen exakt 0,0,720×960; im Orbit weicht er um unter 0,6 px vom Sollwert ab. Maus: Fläche (800,600) → Spiel (400,300). Das Schiff hat statt 112 nun 224 echte Abtastpunkte. Bildzeit trotz vierfacher Pixelzahl 1,12 ms — reichlich Luft