Gry mobilne: sterowanie dotykowe i wirtualne
Na urządzeniu mobilnym podstawowy sposób wprowadzania — ekran dotykowy, i to zmienia zasady sterowania grą.
Gry mobilne docierają do ogromnej publiczności, a telefony i tablety mają inne podejście Główną metodą wprowadzania jest wbudowany ekran dotykowy zamiast klawiatury i myszy. Zewnętrzne Klawiatura, mysz lub gamepad również mogą być podłączone do telefonu lub tabletu, ale Nie powinieneś polegać na nich jako na głównej metodzie sterowania — gra powinna być w pełni Pracuj tylko na ekranie dotykowym. Zacznijmy od tego, jak to działa.
Ekran dotykowy i multitouch
Dotknięcie ekranu informuje grę w podobny sposób jak Pygame raporty kluczowe, zdarzenie z współrzędnymi. Kluczowa różnica polega na tym, że ekran może natychmiast kilka jednoczesne punkty dotyku (multitouch) — na przykład jeden palec przesuwa postać, a drugi w tym samym czasie naciska przycisk strzału. W desktopowym Pygame zdarzenie myszy zawsze ma jeden punkt i jeden przycisk; w tworzeniu aplikacji mobilnych trzeba od samego początku projektować pod kilka niezależnych punktów dotyku jednocześnie.
Wirtualne sterowanie
Bez fizycznej klawiatury przyciski ruchu, skoku i strzału muszą być rysowane bezpośrednio na ekran — wirtualny joystick, wirtualne przyciski. To nie jest drobiazg, lecz osobna część Projekt gry: Wirtualne sterowanie powinno być na tyle duże, by pomieścić palec (palec jest znacznie bardziej niedokładny niż wskaźnik myszy), nie nakładają się na ważną część ekranu i pozostają Responsywny nawet przy szybkich ruchach.
| Klawiatura + mysz (komputer stacjonarny) | Ekran dotykowy (telefon komórkowy) | |
|---|---|---|
| Dokładność wskazań | Wysoka — piksel pod kursorem | Poniżej — palec szerszy niż kursor |
| Liczba jednoczesnych wejść | Ograniczenie do liczby kluczy | Wielokrotne niezależne dotyki (multi-touch) |
| Sprzężenie zwrotne dotykowe | Fizyczne naciśnięcie klawisza po naciśnięciu | Ekran jest płaski, ale urządzenie może reagować wibracjami oprogramowania |
| Miejsce na ekranie | Nie zajmuje pola gry | Wirtualne przyciski nakładają się na część ekranu |
Akcja w grze jako abstrakcja
Aby ta sama logika gry działała na klawiaturze, padzie i ekranie dotykowym, Warto je oddzielić akcja w grze ("przesuń się w prawo", "skocz") z konkretnego fizyczne wejście, które go wywołuje. Wtedy "skok" może oznaczać naciśnięcie spacji na Na komputerze stacjonarnym, A przycisk na padzie lub stuknięcie wirtualnego przycisku na telefonie — oraz kod do gry, która reaguje na "skok", w ogóle się nie zmienia:
# Schematycznie: to samo wywołanie nie zależy od źródła wejściowego
def obrabotat_dejstviya(igra):
if igra.dejstvie_nazhato("prygok"):
igrok.prygnut()
# dejstvie_nazhato() wewnątrz sprawdza albo klawisz, albo gamepad,
# albo trafienie tapem w obszar wirtualnego przycisku — gracz tego nie widzi
Game w sekcji 20.26 dokładnie od samego początku określa ten podział.