Rozdział 20 · Tworzenie gier z Pygame

Ekran gry mobilnej: orientacja, proporcje obrazu i High-DPI

Ekran mobilny nie przypomina okna desktopowego: obraca się, nie ma standardowego stosunku boków i często wysoką gęstość pikseli.

Na komputerze gra prawie zawsze otrzymuje okno o stałym lub dowolnie zmiennym rozmiarze, które wybiera sam gracz. Ekran mobilny jest inaczej skonstruowany — i ma od razu kilka własnych źródeł trudności: orientacja, proporcje, bezpieczny obszar i wysoka gęstość pikseli.

Orientacja ekranu

Telefon można trzymać pionowo (portrait) lub poziomo (landscape)), a odtwarzacz ma prawo obracać urządzenie w dowolnym momencie. Gra musi albo wyraźnie ograniczyć się do jednego orientacja (częsty wybór w salonach gier i zagadek), albo szczerze mówiąc, przeliczenie układu ekran podczas obracania — czyli ponowne zdecydowanie, gdzie umieścić pole gry i wirtualne Przyciski sterujące z sekcji 20.11.

Proporcje i bezpieczny obszar

Ekrany różnych telefonów różnią się bardzo różnymi proporcjami obrazu – w przeciwieństwie do komputerów stacjonarnych monitorów, gdzie prawie zawsze występuje prostokąt szerokoekranowy, tutaj zakres jest znacznie szerszy, od prawie kwadratowe do mocno wydłużonych. Dodatkowo wiele nowoczesnych ekranów ma wycięcia pod kamerą i zaokrąglonymi rogami — obszar ekranu widoczny fizycznie dla użytkownika, ale niebezpieczne dla ważnych elementów interfejsu. Deweloperzy uważają ją za odpowiednią do tworzenia treści Część ekranu safe area (bezpieczny obszar) — licznik i ważne przyciski umieszczają się w jego wnętrzu, a nie przylegają do samej krawędzi ekranu.

Prawdziwe okno: ciemnoczerwona ramka wokół krawędzi ekranu i zielona strefa bezpieczeństwa z safe area w środku, wciętym od krawędzi
Prawdziwe okno: strefa bezpieczeństwa to prostokąt z wgłębieniem na każdej krawędzi, gdzie umieszczone są wyniki i ważne przyciski.
Ta sama zasada znajduje się na stronie internetowej książki
Pomysł safe area znany ci nie tylko z rozwoju mobilnego: strona tej książki jest też projektowana z myślą o małych ekranach — treść nie przylega do samej krawędzi na małych telefonach, lecz pozostawia marginesy właśnie z tego powodu.

Rozdzielczość i gęstość pikseli to różne rzeczy

Rozwiązanie — to po prostu liczba pikseli ekranu, na przykład 2400×1080. Gęstość pikseli (PPI/DPI, pixels per inch) jak ciasno są te Piksele są umieszczone na rzeczywistym fizycznym rozmiarze ekranu. Nowoczesne telefony mają fizyczne Ekran jest mały i często ma więcej pikseli niż wyraźnie większy pulpit monitor — to znaczy, gęstość jest wyższa przy porównywalnej lub nawet niższej rozdzielczości. Ekran z Wysoka gęstość nazywana jest high-DPI.

Stąd trzecia koncepcja — logiczny rozmiar: to, w jakich jednostkach twój kod i interfejs myślą o ekranie, w przeciwieństwie do tego, ile faktycznie ma fizycznych pikseli:

Logiczne rozwiązanie gry
w tych jednostkach określasz pozycje i wymiary w kodzie
Skalowanie
system lub silnik przekształca współrzędne logiczne na fizyczne
Fizyczne piksele ekranu
to, co faktycznie świeci na high-DPI wyświetlaczu
Obraz narysowany „jeden logiczny piksel, jeden fizyczny”
Cechy ekranuPulpitMobile
OrientacjaZazwyczaj stałe, nie zmienia się podczas gryMogą ulec zmianie w dowolnym momencie
ProporcjeStandardowy wąski zakresSzerokie rozmieszczenie między urządzeniami
Wycięcia i zaokrąglone rogiW praktyce prawie się nie spotykaTo powszechne, że potrzebuje się safe area
Gęstość pikseliZazwyczaj niższyCzęsto zauważalnie wyższe — potrzebujesz wagi do high-DPI