http://www.pygame.org/
https://pypi.org/project/pygame/
http://www.libsdl.org/
Biblioteka 'pygame' nie należy do biblioteki standardowej Pythona, więc trzeba ją osobno instalować.
PIP (konto użytkownika lub środowisko wirtualne) python3 -m pip install pygame APT (dla całego komputera) Pakiety Debiana: python-pygame (Py2.7), python3-pygame (Py3), oraz zależności. Debian 10 ma pygame 1.9.4, w PyPI jest wersja 2.6.1 (wydana 2024-10-29).
Pygame jest to darmowy zbiór modułów przeznaczonych do pisania gier video. Działa prawie na każdej platformie i systemie operacyjnym (przenośność). Pygame bazuje na bibliotece SDL (Simple DirectMedia Layer).
Autorami Pygame są Pete Shinners i inni deweloperzy. Pygame jest projektem społecznościowym od roku 2000, wydanym na licencji 'GNU Lesser General Public License'. W roku 2020 wydano Pygame 2.0, z zachowaniem w dużym stopniu kompatybilności wstecz (backwards compatibility).
# Struktura programu z pygame (1).
# hello.py
import sys
import pygame
# INITIALIZE THE GAME
pygame.init() # inicjalizacja pygame, to zawsze na starcie
size = (width, height) = (400, 300) # rozmiary okna w pikselach
screen = pygame.display.set_mode(size) # stworzenie 'display surface'
pygame.display.set_caption('Hello') # napis w pasku tytułu
# MAIN GAME LOOP
while True:
# HANDLE EVENTS (należy usuwać zdarzenia z kolejki zdarzeń)
for event in pygame.event.get(): # pętla po liście zdarzeń (event list)
if event.type == pygame.QUIT: # QUIT Event
pygame.quit() # deaktywacja pygame
sys.exit(0)
# DRAWING
# Rysowanie różnych obiektów, sprawdzanie przekrywania, itp.
pygame.display.flip() # przerysowanie całego okna z bufora na ekran
# Współczesne komputery zwykle nie mają problemu z przerysowaniem całego ekranu.
# Struktura programu z pygame (2).
# hello2.py
import pygame
# INITIALIZE THE GAME
pygame.init() # inicjalizacja pygame, to zawsze na starcie
size = (width, height) = (400, 300) # rozmiary okna w pikselach
screen = pygame.display.set_mode(size) # stworzenie display Surface
pygame.display.set_caption('Hello') # napis w pasku tytułu
# MAIN GAME LOOP
done = False # flaga do wykrycia zakończenia while
while not done:
# HANDLE EVENTS
for event in pygame.event.get():
if event.type == pygame.QUIT: # QUIT Event
done = True # chcemy zakończyć pętlę while;
# samo 'break' nie wystarczy, bo mamy zagnieżdżoną pętlę
# DRAWING
# Rysowanie różnych obiektów, sprawdzanie przekrywania, itp.
pygame.display.flip() # przerysowanie całego okna z bufora na ekran
pygame.quit() # deaktywacja pygame
# dalsze instrukcje programu bez pygame
# Numeracja pikseli jak kwadratów w curses, (x, y). # X # 0 1 2 3 # Y 0 . . . . # 1 . . . . # 2 . . . . # 3 . . . .