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.

Pygame
VývojářPete Shinners
Komunita Pygame
Aktuální verze1.9.6 (25. dubna 2019)
Operační systémmultiplatformní
Vyvíjeno vPython, C, JSA
Typ softwaruAPI
LicenceLGPL
Webhttp://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é

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. 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. ROTHAMEL, Tom. Pygame Subset for Android [online]. 2010 [cit. 2011-08-15]. Dostupné online. (anglicky)

Externí odkazy

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.