Meteorytowy deszcz: strzelanka w Pythonie krok po kroku
Rakieta jedzie za myszką, a spacja strzela gwiazdkami w spadające meteory. Każdy meteor, który spadnie na dół albo uderzy w rakietę, zabiera życie. Co 10 punktów meteory lecą szybciej. To druga z trzech większych gier kursu Gry w Pythonie - przykłady: uczy sterowania myszą, tworzenia i usuwania obiektów w trakcie gry oraz pracy z listą przeciwników.

Zagraj i zacznij pisać Meteorytowy deszcz
Dziesięć kroków
Każdy krok jest najpierw przykładem: gotowy kod gry po tym kroku, z objaśnieniem, co doszło, do uruchomienia i prześledzenia przyciskiem Krok. Linie nowe i zmienione względem poprzedniego kroku są w edytorze zaznaczone kolorem. Potem uczeń pisze własną wersję gry w dziesięciu zadaniach. Wersja ucznia ma większą rakietę, szybsze meteory i pociski, 5 żyć zamiast 3, poziom co 5 punktów, inny tytuł i dłuższą ochronę po zderzeniu. Dlatego przepisanie przykładu nie wystarcza: trzeba zrozumieć, które liczby co robią. Pierwsze zadanie zaczyna się od pustego edytora, a każde następne ma przycisk “Kod z poprzedniego zadania”, który wstawia własny kod ucznia z poprzedniego kroku.
- Rakieta: klasa
Rocket, która jedzie w poziomie za myszką (world.mouse.x). - Meteor: klasa
Meteorz własną metodąreset(), która stawia go w losowym miejscu na górze planszy. - Strzał: klasa
Bullettworzona w trakcie gry i usuwana na górze (self.remove()); jedno wciśnięcie spacji to jeden strzał, nawet gdy klawisz jest trzymany. - Trafienie: kolizja pocisku z meteorem, punkty w napisie
Game. - Życia: meteor na dole albo w rakiecie zabiera życie, koniec gry przy zerze.
- Deszcz meteorów: lista
meteorsi pętlafor, która sprawdza każdy meteor. - Poziomy: poziom liczony z punktów (
1 + points // 10), meteory coraz szybsze. - Wybuch: krótko żyjący obiekt
Spark, który rośnie i znika. - Start, rekord i jeszcze raz: ekran startowy, rekord i restart kliknięciem.
- Chwila ochrony: po zderzeniu rakieta przez 2 sekundy jest nietykalna i mruga.

Czego uczy ta gra
- Sterowanie myszą: pozycja kursora i kliknięcie jako zdarzenie startu gry.
- Wykrywanie wciśnięcia, nie trzymania: pole
was_downzapamiętuje poprzedni stan klawisza. Ten sam wzorzec przyda się w każdej grze. - Obiekty tworzone i usuwane w trakcie gry: pociski i wybuchy żyją krótko i same się sprzątają.
- Listy i pętle: wiele meteorów w jednej liście, każdy sprawdzany pętlą
for. - Dzielenie całkowite: poziom trudności liczony z punktów.
Na lekcji informatyki
W tej grze uczeń używa zmiennych, wyrażeń arytmetycznych i logicznych, instrukcji warunkowych i pętli, czyli konstrukcji wymienionych w podstawie programowej dla klas 7-8 i liceum. Każdy krok ma automatyczny test zachowania, więc uczeń od razu widzi, czy program spełnia polecenie, i może go poprawić krokowaniem. Pełne teksty wymagań: podstawa programowa.
Inne gry z kursu
- Kryształowa jaskinia: gra na czas sterowana strzałkami.
- Żabi skok: skakanka z grawitacją i podwójnym skokiem.
Wszystkie kursy gier opisuje strona gry w Pythonie.