Lekcja 4 – Sterowanie

Model sterowania zapożyczymy z gry Flappy Bird, a nawet nieco go uprościmy. Plan jest taki: kiedy trzymamy palec na ekranie, statek ma lecieć w górę. w przeciwnym wypadku – w dół. Brzmi prosto.

Aktualny kierunek lotu statku będzie pamiętany w zmiennej kierunek. Na początku kodu wstaw deklarację zmiennej kierunek wraz z domyślną wartością („down”).

Do znanego już nam obiektu Runtime podczepimy funkcję reagującą na zdarzenie „touch”, czyli na dotknięcie ekranu. Sposób znamy z poprzedniej lekcji:

Za każdym razem, gdy dotkniemy ekranu („touch”), zostanie wywołana funkcja ustawKierunek.

Nie zapomnij wstawić kod funkcji ustawKierunek przed komendą addEventListener.

Zdarzenie „touch” ma trzy fazy: poczętek („began”), czyli moment dotknięcia ekranu, koniec („ended”), czyli moment oderwania palca od ekranu, i ruch („moved”), generowany za każdym razem, gdy suwamy palcem po ekranie bez odrywania go (pozwala to na kontrolowanie przesuwania obiektów po ekranie). Funkcja ustawKierunek jest bardzo prosta – gdy dotkniemy ekranu ustawia wartość zmiennej kierunek na „up”, gdy oderwiemy palec od ekranu – na „down”. W zmiennej kierunek przechowujemy informację, czy statek ma lecieć w górę, czy w dół. Wykorzystamy ją w funkcji ruszajObiektami:

Wiemy, że jeśli zmienna kierunek nie ma wartości „up”, to musi mieć wartość „down”, bo innych wartości w niej nie zapisujemy.
Nasz statek jest od teraz sterowalny!

kr6

Jak na razie naszym statkiem można wylecieć poza ekran. Aby nie było to możliwe, wstawimy odpowiednią korektę kursu:

Dzięki temu można będzie dolecieć tylko do krawędzi ekranu.

Nasz kod wygląda teraz tak:

W następnej lekcji zajmiemy się wykrywaniem kolizji.

Poprzednia lekcja | Następna lekcja