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.

Pygame byl vytvořen jako náhrada za ukončený projekt pySDL. 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.

K dispozici je mnoho tutoriálů převážně v anglickém jazyce.An Introduction to Python Game Programming – napsáno Renem Dudfieldem and Geoffem Howlandem (anglicky)Line by line tutorial – 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 a Arinoid tutorials – video tutoriály na showmedo (anglicky) Pravidelně se koná soutěž ve vytváření malých her.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)

Platformy Pygame podporuje množství různých platforem oficiálně či neoficiálně. 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.

Oficiálně podporované Linux Windows Windows CE BeOS MacOS Mac OS X FreeBSD NetBSD OpenBSD BSD/OS Solaris IRIX QNX

Neoficiálně podporované Android AmigaOS Dreamcast Atari AIX OSF/Tru64 RISC OS Symbian OS OS/2

Ukázkový program náhled|Ukázkový program spuštěný v operačním systému Ubuntu 11.04

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

Externí odkazy

https://web.archive.org/web/20130922091530/http://www.pygame.org/ – Oficiální stránka Pygame – dokumentace, wiki, novinky, vytvořené hry, atd.

Kategorie:Herní enginy Kategorie:Python Kategorie:Software v Pythonu Kategorie:Software pod licencí LGPL