Java týden První novoroční výprodej
Hledáš brigádu v IT, která bude 100 % home office a 100 % flexibilní? Pak napiš na: redakce [zavináč] itnetwork.cz pro více info!
80 % bodů zdarma díky akci Black Friday! Tento týden rovněž sleva na e-learning Java až 80 %

Lekce 1 - Pygame - Úvod & instalace

Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem.
Vydávání, hosting a aktualizace umožňují jeho sponzoři.

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

Logo Pygame

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 jakožto 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

Flappy Bird

Unbeatable tic-tac-toe

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:

Naši partneři možná hledají právě tebe!

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.

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:

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

máme nainstalován pygame řady 1.x.

Třetí možnost je, že nám náš kód vypsal ImportError, což by znamenalo, že se nám nepodařilo správně nainstalovat ani jednu verzi pygame.

Co bude příště?

Příště, v lekci Pygame - Kreslení a pohyb, se podíváme již na vytvoření nějaké základní herní logiky, zkusíme si nakreslit pár čtverců a trochu je rozhýbat.


 

 

Článek pro vás napsal Adam Hlaváček
Avatar
Jak se ti líbí článek?
2 hlasů
vývoji užitečných aplikací zjednodušujících každodenní život
Všechny články v sekci
Pygame
Miniatura
Následující článek
Pygame - Kreslení a pohyb
Aktivity (4)

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!