Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

1. diel - Pygame - Úvod & inštalácia

Naším cieľom v tomto kurze bude vytvoriť jednoduchú interaktívne 2D plošinovku v Pythone pomocou frameworku pygame.

logo pygame - Pygame

Čo je pygame?

Pygame je herný framework a wrapper nad SDL (2), ktorý umožňuje vyvíjať hry vo vašom obľúbenom programovacom jazyku. Poskytuje sadu tried a funkcií, pomocou ktorých je možné na obrazovku ľahko vykresľovať rastre, prehrávať zvuky, zachytávať vstupy a podobne.

Keďže sa ale jedná iba o wrapper nad SDL (2), neponúka pygame žiadne pokročilé konštrukcie a tak celá logika hry závisí iba na vývojári. Výhodou tohto prístupu je, že ako vývojári máme veľkú voľnosť v tom, ako si svoju hru logicky usporiadame. Zároveň je vďaka SDL napríklad možné preložiť hry napísané v pygame aj na Android, čo si ukážeme v niektorej z neskorších lekcií.

Hry v pygame

Ak vás zaujíma, aké hry v pygame už existujú, môžete sa pozrieť na zoznam projektov na oficiálnych stránkach. Nižšie je niekoľko z nich:

Flappy bird - Pygame

Flappy Bird .<> Pygame

Unbeatable tic-tac-toe .<> Pygame

StarSeeker

Prečo používať pygame?

Pre Python existuje nepreberné množstvo rôznych frameworkov na tvorenie klikátek a grafických aplikácií. Tie najrozšírenejšie z nich, či už sa jedná o vstavaný Tkinter, popr. rôzne verzie pre Qt, majú spoločné, že sú veľmi pomalé, ak sa ich vizuálna podoba rýchlo mení. Z toho dôvodu pri vývoji hier, kedy je čo možno najrýchlejší zmena obrazu jednou z kľúčových vlastností, siahneme radšej po pygame, ktorý je vytvorený v duchu tohto konceptu. Ďalšou výhodou pygame je, že je schopný použiť hardvérovú akceleráciu, ak je to možné.

Inštalácia pygame

V súčasnosti existujú dve vývojové vetvy pygame:

Hlavný rozdiel medzi týmito verziami je, že pygame_sdl2 (ako názov napovedá) používa namiesto SDL1 SDL2. My v kurze budeme používať verziu pre SDL2.

Inštalácia pygame 1.x

Inštalácia pygame 1.x je veľmi priamočiara, stačí použiť na inštaláciu pythoního správcu balíčkov pip:

  • pip install pygame
  • alebo python -m pip install pygame

Inštalácia pygame_sdl2

Tu je inštalácia bohužiaľ zložitejšie, lebo pygame_sdl2 je zostavila dostupná iba vo forme balíčka v Ubuntu pre dnes už zastaraný Python 2. My ale chceme používať trochu novšiu verziu Pythone a to 3.6 a vyššie.

V takom prípade máme k dispozícii len zdrojový kód, ktorý si sami musíme skompilovať. Akonáhle máme skompilovať, stačí nám potom vykonať pip install pygame_sdl2*.whl.

Ak používate Linux s 64-bitovým systémom, môžete si stiahnuť už predkompilované verziu. Verziu pre systém Windows sa mi zatiaľ nepodarilo skompilovať. To ničomu ale nevadí, keďže všetky kódy v tomto kurze by mali byť spätne kompatibilný a môžete teda použiť verziu 1.x.

Spätná kompatibilita pygame_sdl2

Pygame_sdl2 je síce stále vo vývoji a niektoré časti ešte nie sú hotové, avšak všeobecne sa snaží byť čo najviac spätne kompatibilný s radom 1.x. Z toho tiež vyplýva možnosť, kedy pygame_sdl2 ponúka nechať sa importovať ako pygame. Tým je veľmi často umožnené spustiť staršie hru na novej verzii pygame bez akejkoľvek zmeny samotného kódu.

Tento dvojaký import môže byť vykonaný napríklad nasledovne (a tiež ho tak budeme používať vo všetkých ukážkach v tomto kurze):

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 inštalácia

Záverom prvej lekcie si ešte otestujeme, či nám pygame naozaj funguje a prípadne v akej verzii. K tomu nám stačí vykonať vyššie uvedený kód a na koniec pridať napríklad:

print('Neplecha ukoncena')

Celý tento kód spustíme.

Ak sa nám na výstupe objaví iba neplecha ukoncena, máme správne nainštalovaný pygame_sdl2. Ak sa nám vo výstupe objaví text podobný tomuto:

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

máme nainštalovaný pygame radu 1.x.

Tretia možnosť je, že nám náš kód vypísal ImportError, čo by znamenalo, že sa nám nepodarilo správne nainštalovať ani jednu verziu pygame.

Čo bude nabudúce?

Nabudúce, v lekcii Pygame - Kreslenie a pohyb , sa pozrieme už na vytvorenie nejaké základné herné logiky, skúsime si nakresliť pár štvorcov a trochu ich rozhýbať.


 

Všetky články v sekcii
Pygame
Preskočiť článok
(neodporúčame)
Pygame - Kreslenie a pohyb
Článok pre vás napísal Adam Hlaváček
Avatar
Užívateľské hodnotenie:
1 hlasov
vývoji užitečných aplikací zjednodušujících každodenní život
Aktivity