Pygame

Pygame
Logo
VývojářPete Shinners
Komunita Pygame
První vydání22. října 2000
Aktuální verze1.9.6 (25. dubna 2019)
Operační systémmultiplatformní
Vyvíjeno vPython, C, JSA
Typ softwaruAPI
LicenceLGPL
Webhttps://www.pygame.org
Některá data mohou pocházet z datové položky.

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.[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é

Neoficiálně podporované

Ukázkový program

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

V tomto článku byl použit překlad textu z článku Pygame na anglické Wikipedii.

  1. SHINNERS, Pete. Python Pygame Introduction [online]. [cit. 2011-08-15]. Dostupné v archivu pořízeném dne 2011-08-15. (anglicky) 
  2. a b Pygame About [online]. [cit. 2011-08-15]. Dostupné v archivu pořízeném dne 2018-10-03. (anglicky) 
  3. An Introduction to Python Game Programming Archivováno 17. 12. 2008 na Wayback Machine – napsáno Renem Dudfieldem and Geoffem Howlandem (anglicky)
  4. Line by line tutorial Archivováno 5. 2. 2005 na Wayback Machine – Tutoriál pro začátečníky od Peta Shinnerse. (anglicky)
  5. Creating Games with Python – Tutoriál vysvětlující jak použít Pygame pro vývoj her a vylepšené spouštění. (anglicky)
  6. PyGame Tutorials – tutoriály s objektovým programováním. (anglicky)
  7. 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)
  8. 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)
  9. a b ROTHAMEL, Tom. Pygame Subset for Android [online]. 2010 [cit. 2011-08-15]. Dostupné online. (anglicky) 

Externí odkazy

Média použitá na této stránce

Pygame logo.svg
Autor: TheCorruptor, Licence: LGPL
Logo of pygame, a Python module for writing video games
Pygame - Hello World.png
Autor: Phobulos, Licence: CC0
Ukázkový program Hello World vytvořený v jazyce Python s modulem Pygame. Zdrojový kód programu lze najít v článku Pygame na české Wikipedii. Program je spuštěn v systému Ubuntu 11.04.