W tym materiale będzie coś w sam raz dla osób pragnących zacząć tworzyć własne gry 🎮! "pygame" w języku Python jest popularnym pakietem do tworzenia prostych gier komputerowych 🤩! I właśnie o nim jest temat niniejszego artykułu 😊! Pokażę same podstawy, czyli jak zainstalować pakiet "pygame" i jak utworzyć samo okno gry, czyli same pierwsze kroki 👣! Uprzedzę jeszcze, że na mojej stronie jest cała odrębna kategoria artykułów o "pygame", gdyby Cię bardzo interesowała dalsza nauka korzystania z tego pakietu 👍! A teraz zapraszam do środka ⏏️!
"PYGAME" W JĘZYKU PYTHON DROGĄ DO TWORZENIA PIERWSZYCH GIER!
Zaczynamy od krótkiego przedstawienia pakietu, potem pokażę instalację, a następnie jak utworzyć okno dla gry ❤️!
CZYM JEST "PYGAME" W JĘZYKU PYTHON?
W Pythonie, "pygame" jest popularnym pakietem przeznaczonym do tworzenia gier wideo tzn. działających w prawdziwym oknie gry 📹. Oficjalnie określa się go "biblioteką", jednak z technicznego punktu widzenia to pakiet, ponieważ składa się z wielu poszczególnych modułów, a pojęcie "biblioteka" nie zostało w żaden sposób zdefiniowane w oficjalnej dokumentacji 📖.
"pygame" korzysta z innej popularnej (już) biblioteki do tworzenia aplikacji multimedialnych (nie tylko gier), "SDL" czyli "Simple DirectMedia Layer" ℹ️. W ten sposób łączy prostą składnię jaką posiada Python z niskopoziomową architekturą biblioteki napisanej w języku C 👍. Tworzenie gier za jego pomocą jest ograniczone wyłącznie do 2D, więc korzystanie z tego pakietu jest dobre wyłącznie do tworzenia gier prostych (do treningu 💪) ⚠️. Także gdybyś chciał(a) stworzyć jakąś grę 3D, to nie zrobisz tego z użyciem "pygame" (co najwyżej symulowane) 🚫.
"pygame" to popularny pakiet pozwalający na tworzenie prostych gier 2D w Pythonie jako prostsza w obsłudze alternatywa biblioteki "SDL".
Źródło: Pygame Logos Page — pygame v2.6.0 documentation
W odrębnym artykule (i całej odrębnej kategorii) opisałem szerzej czy Python jest dobrym językiem do tworzenia w nim gier, więc zainteresowanych poproszę o skierowanie się do załączonego materiału 👈, a teraz pokażę proces instalacji 💾. "pygame" nie jest częścią standardowej biblioteki Pythona, stąd należy go najpierw zainstalować 🙂.
JAK ZAINSTALOWAĆ PAKIET "PYGAME"?
Przejdź do wiersza poleceń ("cmd") i mając pewność, że lokalizacja do Pythona została poprawnie dodana do zmiennej środowiskowej "Path", wystarczy wpisać poniższą komendę 👇:
pip install pygame"pygame" zajmuje około 15 MB, więc będzie potrzebna nieco dłuższa chwila na pobranie, natomiast przy silnym łączu internetowym nie powinno to być w ogóle odczuwalne 🙂.
Jeżeli zobaczysz komunikat takiej postaci 👇:
Successfully installed pygame-2.6.1to jednoznaczny sygnał, że "pygame" został poprawnie zainstalowany i jest gotowy do użycia ✅!
W tym miejscu uprzedzam, że możesz natrafić na błąd podczas instalowania gdy korzystasz z najnowszej wersji Pythona 😳. W treści błędu możesz znaleźć jeden wiersz o następującej postaci 👇:
ModuleNotFoundError: No module named 'setuptools._distutils.msvccompiler'Wyjaśniam jak go usunąć 🎯.
JAK USUNĄĆ BŁĄD "SETUPTOOLS._DISTUTILS.MSVCCOMPILER" PRZY PRÓBIE INSTALACJI "PYGAME"?
Musisz skorzystać z nieco starszej wersji Pythona i na niej pobrać pakiet "pygame" 🙂. Mając problem na wersji 3.14.6, pomogło mi przejście na wersję 3.13 ✅. Błąd powstaje z powodu nieprzygotowania przez twórców "pygame" tzw. pliku "wheel" (skompilowany plik binarny ℹ️), z którego korzysta instalator pakietów. Dopóki on nie zostanie wykonany, trzeba "przesiadać się" na nieco starszą wersję Pythona bądź samemu skonfigurować kompilator potrzebny do skompilowania niezbędnych zależności 😏. Gdyby interesował Cię ten drugi sposób, musisz już poszukać samodzielnie informacji na ten temat 🔍.
Przechodzimy do części skorzystania z pakietu "pygame" celem utworzenia okna gry 🚀!
JAK SKORZYSTAĆ Z PAKIETU "PYGAME"?
W swoim skrypcie Pythona, zaimportuj moduł przy użyciu następującej instrukcji umieszczonej u samej góry 👇:
import pygameInstrukcja importu umożliwia dostęp do wszystkich wartości i funkcji występujących w załączonym module 🔓. Drugim sposobem zapisu jest skorzystanie z połączenia słów "import" i "from" 👇:
from pygame.display import set_modeTo, jakiego zapisu użyjemy, ma później wpływ na odwoływanie się do składowych ⚠️. Kod źródłowy ukazany w dalszej części artykułu będzie dostosowany pod zapis pierwszy, a do samych słów "import" i "from" będą osobne materiały ℹ️.
Została najciekawsza część: tworzenie okna gry 😁!
JAK SKORZYSTAĆ OKNO GRY UŻYWAJĄC PAKIETU "PYGAME"?
Oto kod źródłowy do utworzenia okna gry z użyciem pakietu "pygame" w języku Python 👇:
import pygame
game_window = pygame.display.set_mode((320, 240))
game_is_running = True
while game_is_running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_is_running = False
pygame.display.update()
pygame.quit()Korzystanie z "pygame" wygląda zupełnie inaczej niż przy innych pakietach, ponieważ każda gra działająca w tle korzysta z pętli "while" ℹ️. Dlatego uznałem, że najlepszym przykładem na początek będzie stworzenie samego okna gry bez niczego w środku 🙂.
Na samym początku importujemy moduł "pygame" ↩️. Zaraz po nim tworzymy sobie 2 zmienne 👇:
- okno gry jako "przestrzeń", po której można rysować,
- wartość logiczna do ustalania czy gra w tej chwili działa (ustawiamy na "True").
"set_mode" tworzy nam obiekt okna. Jako metoda przyjmuje krotkę z 2 liczbami całkowitymi (bez ułamka) oznaczającymi kolejno szerokość i wysokość okna ℹ️. Nie dwie osobne liczby, tylko jedną krotkę z dwiema liczbami w środku ⚠️! Wartość logiczna z kolei jest potrzebna w celu przerwania dalszego działania pętli "while", dzięki której okno gry funkcjonuje tak długo, jak potrzeba 👍.
W dalszej części mamy pętlę "while" i to jest miejsce do wprowadzania instrukcji związanych z pętlą gry 🔁. W środku niej znajduje się tym razem pętla "for" do obsługi zdarzeń związanych z grą, takich jak zamknięcie okna czy kliknięcie przycisku myszy 😲. W tym przypadku mamy jedynie sprawdzanie instrukcją warunkową, czy zdarzenie jest typu "QUIT", czyli moment kliknięcia czerwonego krzyżyka w nagłówku okna gry 🚨. Gdy aplikacja odbierze zdarzenie tego typu, ustawiamy wartość logiczną na "False", co będzie skutkowało przerwaniem dalszego działania gry (warunek pętli "while" nie będzie dalej spełniany) 💡.
Pętla "for" jest dlatego, gdyż w tej samej klatce może wystąpić więcej niż jedno zdarzenie 😲! Na przykład możemy przytrzymać prawy przycisk myszy i jednocześnie trzymać klawisz W. Metoda "get" zwraca listę przechwyconych zdarzeń i w większości przypadków będą one dotyczyły urządzeń peryferyjnych obsługujących sterowanie 🎮.
Poza pętlą "for" do obsługi zdarzeń, znajduje się metoda do odświeżania zawartości ekranu, "update" 🧹. Tworzenie gier w "pygame" opiera się na klasycznym stylu programowania, w którym wszystko co wstawiamy jako instrukcje, wykonuje się co klatkę ▶️. Za każdym razem, gdy nanosimy coś na ekran, okno w kolejnej klatce wymaga odświeżenia, czyli usunięcia całej poprzedniej (nieaktualnej już) zawartości ♻️. Po to właśnie jest ta metoda ✅. Akurat na tym przykładzie nic się nie dzieje na ekranie, natomiast nawet przy ustawianiu innego koloru tła, będziemy potrzebowali odświeżania ekranu 🙂.
Gdy program przestanie wykonywać instrukcje w pętli "while" i przejdzie dalej, tam już jest tylko wywołanie metody "quit", która powoduje "zamknięcie" całej obsługi pakietu "pygame" jako znak całkowitego zakończenia działania programu 🏁.
Staraj się nie zapominać o tym wywołaniu, jako że to jest sygnał do systemu operacyjnego: "nie korzystam już z zasobów, możesz je zwolnić". Brak takiego typowego zakończenia procesu odpowiedzialnego za przydzielanie zasobów modyfikowanych w trakcie działania programu, może powodować nienaturalne zachowania systemu w dalszej części jego funkcjonowania 😬.
Uruchomienie tego programu sprawi pojawienie się na środku ekranu okna z czarnym tłem 😊. Moment stałego wyświetlania okna z grą jest działaniem pętli "while" 👍. Zamknięcie okna spowoduje "wyjście" z pętli poprzez wysłanie sygnału do aplikacji typu "QUIT", czyli zamknięcie aplikacji poprzez naciśnięcie krzyżyka ❌.
![]() |
Wygląd pustego okna gry stworzonego w pakiecie "pygame".
W ramach ciekawostki na koniec napiszę, że jeżeli chcesz sobie zmienić tytuł okna gry, wystarczy wstawić sobie poniższą instrukcję tuż przed pętlą "while" 👇:
pygame.display.set_caption('Moja gra w pygame')Python zezwala na wstawianie polskich znaków, aczkolwiek nie radziłbym korzystania z nich w tym przypadku ⛔. Nie każdy system operacyjny będzie w stanie je poprawnie obsłużyć i wyświetlić (mogą pojawić się tzw. "krzaki") 😐.
Tak wyglądają prawdziwe podstawy obsługi "pygame" w języku Python 😄! Przypominam, że na stronie znajduje się odrębna kategoria z artykułami poświęcona samemu pakietowi "pygame", w której znajdziesz więcej tematów jak z tego korzystać 🔥. O "pygame" można napisać sporo, stąd też gdyby w przyszłości pojawiły się nowe materiały, pojawią się w kategorii "pygame (Python)" 😉.
Podstawy pakietu "pygame" wyjaśnione ✅. Ponieważ to służy jako wprowadzenie do samego pakietu, ten artykuł znalazł się w kategorii o samym języku Python, natomiast szczegóły korzystania z "pygame" są już wyodrębnione do osobnej kategorii, aby wydzielić 2 różne wątki od siebie ℹ️.
