Węże w kosmosie

Tworzenie gier to zajęcie dla "twardzieli"? Owszem, ale nie musi oznaczać drogi przez mękę. Zawsze przecież można użyć Pythona i biblioteki Pygame.

Stereotypy są po to, by je łamać – dlatego powstała biblioteka Pygame. Dzięki niej w zasadzie każdy średnio zaawansowany programista jest w stanie napisać własną grę – i to bez wklepywania choćby wiersza kodu w C/C++. Jak to możliwe? Zacznijmy od początku.

Wszystko rozpoczęło się od tego, że w 1994 roku holenderski matematyk Guido van Rossum stworzył podstawy obiektowego języka programowania o nazwie Python. O Pythonie można napisać bardzo wiele. Tutaj ograniczymy się jedynie do stwierdzenia, że Python jest niezwykle prostym, eleganckim i wydajnym językiem programowania wysokiego poziomu. Interpreter Pythona można uruchomić w znakomitej większości systemów operacyjnych (m.in. w wielu Uniksach – w tym w Linuksie, jak również w Windows, Mac OS-ie czy AmigaOS-ie).

Równolegle rozwijana była doskonała, wieloplatformowa biblioteka graficzna SDL (patrz: ramka na

153

), pozwalająca na tworzenie aplikacji multimedialnych. Ponieważ SDL napisano w C, jej użycie w Pythonie wymagało stworzenia odpowiedniego interfejsu programistycznego (tzw. wrappera) – i tak właśnie powstała biblioteka Pygame.

Twórca Pygame, Pete Shinners, nie tylko udostępnił możliwości SDL w Pythonie, ale poszedł krok dalej. Wprowadził mianowicie szereg ułatwień dla programistów chcących pisać gry, szczególnie zręcznościowe – mowa tu zwłaszcza o zaawansowanych mechanizmach obsługi „duszków” (sprites), czyli ruchomych obiektów graficznych. Obecnie Pygame jest już produktem w pełni ukształtowanym. Doskonale łączy prostotę i efektywność Pythona z ogromnymi możliwościami SDL.

Namawianie węża do (współ)pracy

Pracę musimy, rzecz jasna, rozpocząć od instalacji potrzebnych komponentów – czyli Pythona, SDL i Pygame. Wygląda to różnie w różnych systemach operacyjnych – jednak w żadnym przypadku nie powinno sprawić większych problemów. Jeśli korzystamy z Linuksa czy FreeBSD, w zasadzie mamy problem z głowy – zarówno pakiety Pythona, jak i Pygame oraz libSDL znajdziemy na krążkach z dystrybucją. Użytkownicy Windows również nie powinni mieć problemów – wszystkie potrzebne komponenty umieszczono na płycie dołączonej do numeru. Osoby korzystające z innych systemów będą prawdopodobnie musiały przejrzeć stronę projektu Pygame i pobrać potrzebne pakiety.

Warto zaopatrzyć się w odpowiedni edytor tekstu, kolorujący kod źródłowy Pythona. Użytkownicy systemów uniksowych mogą użyć np. vima, Emacsa, KWrite’a, Quanty, nedita (http://nedit.org/) czy Jexta (http://www.jext.org/). Z tego ostatniego mogą też skorzystać osoby pracujące w Windows (Jext wymaga interpretera Javy), ale dostępne są również komercyjne środowiska programistyczne, rozpoznające składnię Pythona, takie jak Komodo, EditPlus lub Code-Genie. Obszerne informacje na temat edytorów dla różnych platform znajdziemy pod adresem http://www.python.org/editors/.

Przed przystąpieniem do pracy będzie wreszcie konieczna odrobina teorii programowania obiektowego. Jeśli takie pojęcia, jak instancja klasy, polimorfizm czy metoda obiektu są Ci, drogi Czytelniku, obce, proponuję zapoznać się z teorią obiektową dowolnego języka programowania. Obiekty i klasy to pojęcia z założenia intuicyjne, a ich zrozumienie pozwoli na komfortowe wkroczenie w świat gier komputerowych.

Próba generalna

Wraz z dokumentacją Pygame (instalowaną zazwyczaj z osobnego pliku – patrz: CHIP-CD) otrzymujemy kilka przykładów działania biblioteki w praktyce. Warto je na początek uruchomić – chociażby po to, by przekonać się, że wszystko działa poprawnie.

Przykłady przydadzą się też na pewno do innych celów, a mianowicie do „podejrzenia” sztuczek najczęściej stosowanych przez doświadczonych programistów. Pygame oferuje niezłą dokumentację, lecz – jak zwykle – wielu rzeczy łatwiej nauczymy się, analizując gotowy kod źródłowy.

Postarajmy się teraz napisać prostą grę zręcznościową, traktującą o przygodach nieustraszonego pilota nowoczesnego myśliwca produkcji naszych sojuszników zza Wielkiej Wody. Wyobraźmy sobie, że nasz lotnik przypadkowo zaplątał się w kosmosie i… tak, oczywiście – napotkał wrogie statki Obcych. Temat został już do cna wyeksploatowany, jednak ma niezaprzeczalną zaletę – „zręcznościówka” opisanego typu zawiera praktycznie wszystkie elementy, które należy „przećwiczyć” przed przystąpieniem do pisania konkurencji Quake’a i WarCrafta. Jakie – okaże się w trakcie pisania. Zapraszam zatem do klawiatury!

Co będzie potrzebne?
Aby napisać i uruchomić program opisywany w niniejszym artykule, należy zaopatrzyć się w:
– interpreter Pythona (w Linuksie jest on dostępny w każdej dystrybucji, użytkownicy Windows mogą zainstalować ActivePythona z krążka CHIP-CD);
– bibliotekę Pygame (dostępna pod adresem www.pygame.org oraz na płycie dołączonej do numeru);
– bibliotekę SDL (na krążku CD lub na stronie www.libsdl.org);
– edytor tekstowy, najlepiej z opcją podświetlania słów kluczowych Pythona.

0
Zamknij

Choć staramy się je ograniczać, wykorzystujemy mechanizmy takie jak ciasteczka, które pozwalają naszym partnerom na śledzenie Twojego zachowania w sieci. Dowiedz się więcej.