Podstawy PyGame
14 July 2008
Comments
Python, pyGame i gry
Python był i jest stosowany w różnych grach i aplikacjach. Przykładowo silnik gry Świątynia Pierwotnego Zła oskryptowany był w pythonie - kod pythona sterował całą grą. pyGame to biblioteka przeznaczona do tworzenia przenośnych gier napisanych w całości w pythonie. Bazuje na wydajnych bibliotekach SDL. Proste gry w pyGame (pisane w tydzień) można znaleźć na pyweek.orgZ wikipedii:
Pygame to stworzona przez Pete Shinnersa biblioteka graficzna przeznaczona do tworzenia gier komputerowych oraz aplikacji multimedialnych w języku Python. Do działania wymaga biblioteki SDL, przy wykorzystaniu której dostarcza modułów pozwalających na wyświetlanie grafiki, odtwarzanie dźwięków, śledzenie czasu, obsługę myszy i joysticka, obsługę CD, czy renderowanie czcionek TTF. Pygame jako nakładka na SDL jest wieloplatformowa i umożliwia pracę na różnych systemach operacyjnych m.in. na Windows, Linux, MacOS.
Biblioteka Pygame stanowi wolne oprogramowanie i jest dystrybuowana na zasadach licencji LGPL.
Instalacja pyGame
W przypadku systemów linuks/unix pygame powinno być w repozytorium twojego systemu, a jeżeli nie ma to pobieramy pakiet ze strony projektu. W przypadku MS Windows pobieramy instalator (exe). pyGame możemy pobrać z tej strony.Czy wszystko działa ?
Otwórz plik pythona o kodzie:import pygame, sys,os
from pygame.locals import *
pygame.init()
Podstawy
W testowym kodzie powyżej zaimportowaliśmy pygame i kilka innych modułów. Ostatni wiersz zawiera:pygame.init()
Metoda init ładuje moduły pyGame odpowiedzialne m.in. za dźwięk czy grafikę i jest podstawą każdej aplikacji korzystającej z tej biblioteki. Opis tej podobnych metod znajdziemy tutaj.Teraz rozbudujemy kod do postaci:
import pygame, sys,os
from pygame.locals import *
pygame.init()
# utworzenie okna
window = pygame.display.set_mode((468, 60))
def input(events):
for event in events:
if event.type == QUIT:
sys.exit(0)
else:
print event
# działaj aż do przerwania
while True:
input(pygame.event.get())
window = pygame.display.set_mode((długość, wysokość))
Ustawia rozmiar okna. Kolejny element to funkcja input reagująca na zdarzenia wysyłane między aplikacją pyGame a "odbiorcą". Jej cel w tym przykładzie to zakończenie aplikacji w przypadku otrzymania odpowiedniego sygnału i wyświetlenie komunikatu o zdarzeniu w przypadku pozostałych. Naszą aplikację kończy:
while True: input(pygame.event.get())
Dodajemy grafikę
Rozbudowujemy nasz kod do postacji:import pygame, sys,os
from pygame.locals import *
pygame.init()
window = pygame.display.set_mode((550, 400))
# ustawiamy etykietę
pygame.display.set_caption('Gra w pyGame')
# ładujemy plik graficzny
moja_grafika = pygame.image.load('foto.png')
# pobieramy informacje o ekranie - tle
screen = pygame.display.get_surface()
# przypisanie grafiki do określonego miejsca ekranu
screen.blit(moja_grafika, (0,0))
pygame.display.flip()
def input(events):
for event in events:
if event.type == QUIT:
sys.exit(0)
else:
print event
while True:
input(pygame.event.get())

Moduły pyGame
cdrom - zarządza CD-ROOMami i odtwarzaniem audiocursors - ładuje grafiki kursora
display - kontroluje ekran lub okno aplikacji
draw - rysuje proste kształty
event - zarządza zdarzeniami (events) i kolejką zdarzeń
font - zarządza czcionkami TrueType
image - zapisuje/ładuje grafiki
joystick - obsługa joisticka
key - obsługa klawiatury
mouse - obsługa myszy
movie - odtwarzanie mpeg
sndarray - manipulowanie dźwiękiem za pomocą Numeric
surfarray - manipulowanie grafikami za pomocą Numeric
time - obsługa czasu
transform - obróbka grafiki
Przykładowa Gra
Jeden ze zwycięzców pyWeek - stworzenie gry w jeden tydzień - to gra o tytule "Trip on the Funny Boat", do pobrania ze strony pyweek (funnyboat-1.1.tar.gz lub nowsze) Po rozpakowaniu uruchamiamy poleceniem:python main.py

RkBlog
Comment article