Stellen Sie sich ein Spiel mit einer Standardauflösung von 800 x 600 vor. Objekte mit Kollisionsmasken werden in eine Spielwelt der Größe 800x600 gelegt. Die Kollisionsmasken können erkennen, wann die Maus mit ihnen kollidiert.
Nehmen wir nun an, wir skalieren das Spiel auf 1024 x 768 (nehmen wir an, wir skalieren die Grafik, indem wir einfach alles auf eine Ebene rendern und dann die gesamte Ebene auf einmal skalieren). Wir haben zwei Möglichkeiten, um die Kollisionen mit der Maus in dieser neuen Auflösung richtig funktionieren zu lassen:
A.) Skalieren Sie die Welt auf 1024x768 und skalieren Sie die Kollisionsmaske jedes Objekts entsprechend.
B.) "Map" die Mausposition auf die Originalwelt (800x600).
Mit "Karte" meine ich, skaliere einfach die Mausposition auf die ursprüngliche 800x600-Welt. Wenn die Mausposition auf dem Bildschirm beispielsweise (1024, 768) ist, ist die Mausposition in der Welt (800, 600).
Offensichtlich erfordert Option B einen Weg weniger Berechnung und ist wahrscheinlich weniger anfällig für geometrische Fehler, aber es fühlt sich auch Art „hackish“ zu mir, wie es unvorhergesehenen Folgen mit dieser Methode geht die Hölle sein wird , zu beheben später.
Mit welcher Methode soll ich gehen: A, B oder etwas anderes?