Pygame
Pygame je multiplatformní sada modulů jazyka Python určená k tvorbě počítačových her. Obsahuje knihovny pro práci s grafikou, zvukem a vstupními zařízeními určené pro použití v jazyce Python. Moduly jsou postaveny nad knihovnou Simple DirectMedia Layer (SDL) s cílem umožnit vývoj her bez znalostí nízkoúrovňového programování v jazyce C a jeho odvozeninách. To je založeno na předpokladu, že většina složitých funkcí v počítačových hrách (převážně práce s grafikou) může být kompletně oddělena od herní logiky, čehož je dosaženo použitím vysokoúrovňového jazyka, jako je Python, pro tvorbu hry.
Vývojář | Pete Shinners Komunita Pygame |
---|---|
Aktuální verze | 1.9.6 (25. dubna 2019) |
Operační systém | multiplatformní |
Vyvíjeno v | Python, C, JSA |
Typ softwaru | API |
Licence | LGPL |
Web | http://www.pygame.org |
Některá data mohou pocházet z datové položky. |
Pygame byl vytvořen jako náhrada za ukončený projekt pySDL.[1] Pygame byl napsán Petem Shinnersem, který jej uvolnil pod licencí GNU Lesser General Public License. Nyní se jedná o svobodný komunitní opensource projekt (přibližně od roku 2004/2005).
Moduly jsou napsány v Pythonu, výkonově náročné funkce jsou však napsány v jazyce C a jazyce symbolických adres.[2]
K dispozici je mnoho tutoriálů převážně v anglickém jazyce.[3][4][5][6][7] Pravidelně se koná soutěž ve vytváření malých her.[8]
Platformy
Pygame podporuje množství různých platforem oficiálně či neoficiálně.[2] To umožňuje provozovat vytvořené hry nejen na počítačích, ale i na různých mobilních zařízeních. Projekt „Pygame Subset for Android“ od Toma Rothamela a Patricka Dawsona je např. zaměřen na systém Android.[9]
Oficiálně podporované
Ukázkový program
Následující ukázkový program vytvoří po spuštění nové okno o velikosti vykreslovací plochy (bez okrajů okna) 640×480 pixelů, jehož titulek nastaví na text „Example“. V okně bude vykreslen text „Hello world!“ zeleným písmem na modrém pozadí. Program se ukončí, pokud uživatel zavře okno standardním způsobem daným použitým operačním systémem (provede se událost „pygame.QUIT“).
# -*- coding: utf-8 -*- # utf-8 kódování zdrojového kódu
import pygame # import modulu Pygame
pygame.init() # inicializace modulu
screen = pygame.display.set_mode((640,480)) # vytvoření okna s nastavením jeho velikosti
pygame.display.set_caption("Example") # nastavení titulku okna
background = pygame.Surface(screen.get_size()) # vytvoření vrstvy pozadí
background = background.convert() # převod vrstvy do vhodného formátu
background.fill((0,0,255)) # obarvení vrstvy modře (r, g, b – červená, zelená, modrá)
basicFont = pygame.font.SysFont(None, 64) # načtení písma velikosti 64
text = basicFont.render('Hello world!', True, (0, 255, 0))
# vytvoření vrstvy s textem "Hello world!", zapnuté vyhlazování, zelené písmo
textRect = text.get_rect() # získání pozic vrstvy textu
textRect.centerx = screen.get_rect().centerx # nastavení pozice x textu na střed obrazovky
textRect.centery = screen.get_rect().centery # nastavení pozice y textu na střed obrazovky
clock = pygame.time.Clock() # časování
keepGoing = True # podmínka pro hlavní smyčku
while keepGoing: # hlavní smyčka
clock.tick(30) # omezení maximálního počtu snímků za sekundu
for event in pygame.event.get():
if event.type == pygame.QUIT: # probíhá událost požadující zavření okna programu?
keepGoing = False # ukončení hlavní smyčky
screen.blit(background, (0,0)) # přidání pozadí k vykreslení na pozici 0, 0
screen.blit(text, textRect) # přidání textu k vykreslení na střed
pygame.display.flip() # vykreslení celého obrazu
|
Hry využívající Pygame
- Slingshot
- Frets on Fire
- Dangerous High School Girls in Trouble
Reference
V tomto článku byl použit překlad textu z článku Pygame na anglické Wikipedii.
- SHINNERS, Pete. Python Pygame Introduction [online]. [cit. 2011-08-15]. Dostupné v archivu pořízeném dne 2011-08-15. (anglicky)
- Pygame About [online]. [cit. 2011-08-15]. Dostupné v archivu pořízeném dne 2018-10-03. (anglicky)
- An Introduction to Python Game Programming Archivováno 17. 12. 2008 na Wayback Machine – napsáno Renem Dudfieldem and Geoffem Howlandem (anglicky)
- Line by line tutorial Archivováno 5. 2. 2005 na Wayback Machine – Tutoriál pro začátečníky od Peta Shinnerse. (anglicky)
- Creating Games with Python – Tutoriál vysvětlující jak použít Pygame pro vývoj her a vylepšené spouštění. (anglicky)
- PyGame Tutorials – tutoriály s objektovým programováním. (anglicky)
- pyGame Basics Archivováno 29. 4. 2007 na Wayback Machine a Arinoid tutorials Archivováno 29. 4. 2007 na Wayback Machine – video tutoriály na showmedo (anglicky)
- Pyweek homepage – pravidelná soutěž (Pyweek) ve vytváření her během jednoho týdne s použitím Python (většina využívá Pygame) (anglicky)
- ROTHAMEL, Tom. Pygame Subset for Android [online]. 2010 [cit. 2011-08-15]. Dostupné online. (anglicky)
Externí odkazy
- Obrázky, zvuky či videa k tématu Pygame na Wikimedia Commons
- (anglicky) https://web.archive.org/web/20130922091530/http://www.pygame.org/ – Oficiální stránka Pygame – dokumentace, wiki, novinky, vytvořené hry, atd.