Rozważ grę, której domyślna rozdzielczość to 800 x 600. Obiekty z maskami kolizyjnymi są umieszczane w świecie gry o wymiarach 800 x 600. Maski kolizyjne mogą wykryć zderzenie myszy z nimi.
Rozważmy teraz skalowanie gry do 1024 x 768 (załóżmy, że skalujemy grafikę, po prostu renderując wszystko na warstwę, a następnie skalując całą warstwę jednocześnie). Mamy dwie opcje prawidłowego działania kolizji z myszą w nowej rozdzielczości:
A.) Powiększ świat do 1024 x 768 i odpowiednio skaluj maskę kolizji każdego obiektu.
B.) „Mapuj” pozycję myszy na oryginalnym świecie (800 x 600).
Przez „mapę” rozumiem po prostu przeskaluj pozycję myszy do oryginalnego świata 800x600. Na przykład, jeśli pozycja myszy na ekranie to (1024, 768), to pozycja myszy na świecie to (800, 600).
Teraz, oczywiście, opcja B wymaga znacznie mniej obliczeń i prawdopodobnie jest mniej podatna na błędy geometryczne, ale wydaje mi się to również trochę „hacking”, podobnie jak istnieją nieprzewidziane konsekwencje korzystania z tej metody, którą będzie piekło naprawić później.
Którą metodą powinienem stosować: A, B lub coś innego?