IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Mezi 13:00 až cca 16:00 proběhne odstávka sítě z důvodu aktualizace. Web bude po celou dobu nedostupný.

Lekce 1 - Pygame - Úvod & instalace

Naším cílem v tomto kurzu bude vytvořit jednoduchou interaktivní 2D plošinovku v Pythonu pomocí frameworku Pygame.

Logo Pygame - Pygame - Tvorba her v Pythonu

Co je Pygame?

Pygame je herní framework a wrapper nad SDL(2), který umožňuje vyvíjet hry ve vašem oblíbeném programovacím jazyce. Poskytuje sadu tříd a funkcí, pomocí kterých je možné na obrazovku snadno vykreslovat rastry, přehrávat zvuky, zachytávat vstupy a podobně.

Jelikož se ale jedná pouze o wrapper nad SDL(2), nenabízí Pygame žádné pokročilé konstrukce a tak celá logika hry závisí pouze na vývojáři. Výhodou tohoto přístupu je, že coby vývojáři máme velkou volnost v tom, jak si svoji hru logicky uspořádáme. Zároveň je díky SDL například možné přeložit hry napsané v Pygame i na Android, což si ukážeme v některé z pozdějších lekcí.

Hry v Pygame

Pokud vás zajímá, jaké hry v Pygame již existují, můžete se podívat na seznam projektů na oficiálních stránkách. Níže je několik z nich:

Flappy bird - Pygame - Tvorba her v Pythonu

Flappy Bird

Pygame - Tvorba her v Pythonu

Unbeatable tic-tac-toe

Pygame - Tvorba her v Pythonu

StarSeeker

Proč používat Pygame?

Pro Python existuje nepřeberné množství různých frameworků na tvoření klikátek a grafických aplikací. Ty nejrozšířenější z nich, ať již se jedná o vestavěný Tkinter, popř. různé verze pro Qt, mají společné, že jsou velice pomalé, pokud se jejich vizuální podoba rychle mění. Z toho důvodu při vývoji her, kdy je co možná nejrychlejší změna obrazu jednou z klíčových vlastností, sáhneme raději po Pygame, který je vytvořen v duchu tohoto konceptu. Další výhodou Pygame je, že je schopný použít hardwarovou akceleraci, je-li to možné.

Instalace Pygame

V současné době existují dvě vývojové větve Pygame:

Hlavní rozdíl mezi těmito verzemi je, že Pygame_sdl2 (jak název napovídá) používá místo SDL1 SDL2. My v kurzu budeme používat verzi pro SDL2.

Instalace Pygame 1.x

Instalace Pygame 1.x je velice přímočará, stačí použít k instalaci pythoního správce balíčků pip:

  • pip install pygame
  • nebo python -m pip install pygame

Instalace Pygame_sdl2

Zde je instalace bohužel složitější, neboť Pygame_sdl2 je zkompilovaná dostupná pouze ve formě balíčku v Ubuntu pro dnes již zastaralý Python 2. My ale chceme používat poněkud novější verzi Pythonu a to 3.6 a výš.

V takovém případě máme k dispozici pouze zdrojový kód, který si sami musíme zkompilovat. Jakmile máme zkompilováno, stačí nám poté provést pip install pygame_sdl2*.whl.

Pokud používáte Linux s 64-bitovým systémem, můžete si stáhnout již předkompilovanou verzi. Verzi pro systém Windows se mi zatím nepodařilo zkompilovat. To ničemu ale nevadí, jelikož všechny kódy v tomto kurzu by měly být zpětně kompatibilní a můžete tedy použít verzi 1.x.

Instalace Pygame v PyCharm

Pokud se vám z jakéhokoliv důvodu instalace přes příkazovou řádku nedaří, nezoufejte. Vaše vývojové prostředí vám jistě umožní instalaci balíčků pomocí stisku několika tlačítek. V případě PyCharm postupujeme následovně:

  1. rozbalíme nabídku File v horní nástrojové liště otevřeného projektu v PyCharm a zvolíme Settings
  2. v okně Settings najdeme volbu > Project: (jméno vašeho projektu)
  3. zadáme volbu Python Interpreter
  4. na pravé straně otevřeného okna stiskneme znaménko plus a vyvoláme okno Available Packages
  5. do vyhledávacího řádku napíšeme Pygame => výsledek hledání se zobrazí v seznamu pod vyhledávacím oknem => vybereme Pygame
  6. tlačítkem Install Package se zvolený balíček nainstaluje

Stejným způsobem postupujeme i při instalaci jiných balíčků.

Instalace Pygame v PyCharm - Pygame - Tvorba her v Pythonu

Zpětná kompatibilita Pygame_sdl2

Pygame_sdl2 je sice stále ve vývoji a některé části ještě nejsou hotové, nicméně obecně se snaží být co nejvíce zpětně kompatibilní s řadou 1.x. Z toho také vyplývá možnost, kdy pygame_sdl2 nabízí nechat se importovat jako pygame. Tím je velice často umožněno spustit starší hru na nové verzi Pygame bez jakékoliv změny samotného kódu.

Tento dvojí import může být proveden například následovně (a také jej tak budeme používat ve všech ukázkách v tomto kurzu):

try:
    import pygame_sdl2  # tries to import pygame_sdl2
    pygame_sdl2.import_as_pygame()  # mask pygame_sdl2 as pygame
except ImportError:
    pass
# if pygame_sdl2 was sucessfully imported, then this only maps pygame to pygame_sdl2
# if not, then original pygame 1.x is imported instead
import pygame

Test instalace

Závěrem první lekce si ještě otestujeme, jestli nám Pygame opravdu funguje a popřípadě v jaké verzi. K tomu nám stačí provést výše uvedený kód a na konec přidat například:

print('neplecha ukoncena')

Celý tento kód spustíme.

Pokud se nám na výstupu objeví pouze neplecha ukoncena, máme správně nainstalován pygame_sdl2. Pokud se nám ve výstupu objeví text podobný tomuto:

Výstup
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html
neplecha ukoncena

Máme tedy nainstalován Pygame řady 1.x.

Pokud kód vypsal ImportError, znamená to, že se nepodařilo správně nainstalovat ani jednu verzi Pygame a bude třeba zapátrat v čem je problém (StackOverflow). Ale věřím, že máte úspěšně nainstalováno a můžeme pokročit dále 🙂

V příští lekci, Pygame - Kreslení a pohyb, se podíváme na herní cyklus, kreslení základních tvarů a ukážeme si, jak s objekty pohybovat.


 

Všechny články v sekci
Pygame - Tvorba her v Pythonu
Přeskočit článek
(nedoporučujeme)
Pygame - Kreslení a pohyb
Článek pro vás napsal Adam Hlaváček
Avatar
Uživatelské hodnocení:
38 hlasů
vývoji užitečných aplikací zjednodušujících každodenní život
Aktivity