Přeskočit na obsah

picogame tutoriály — naučte se engine tvorbou her

Tyto tutoriály učí picogame engine vždy jednu mechaniku po druhé. Každý krok je kompletní, spustitelný program; další krok přidává přesně jednu novou myšlenku navrch. Lekcí je diff mezi po sobě jdoucími kroky — otevřete si stepN a stepN+1 vedle sebe a těch pár změněných řádků je přesně ten nový koncept.

Stavíte skutečné hry, ne hračkovité úryvky:

TutoriálŽánrCo učí
01-bounceBreakout / Arkanoidrender loop, vstup, setrvačnost (sub-pixelová), odrazy od stěn a pálky, box collision, cihlová zeď z Tilemap, HUD, particles + zvuk — a hlavní myšlenku: obdélníky a sprite jsou tentýž objekt, takže výměna grafiky je záležitost jednoho řádku.
02-starshiptop-down vesmírná střílečkarotace přes předem napečené (pre-baked) frames, vektorový tah + obtáčení obrazovky (screen wrap), object pools (střely, nepřátelé), kruhové collision + dělení, stupňující se vlny, particles výbuchů/výfuku, audio a state machine title → hra → game-over.
03-questtop-down RPGsvět větší než obrazovka + následující kamera (set_view s ořezem), collision se stěnami založené na tiles, směrovou chodící animaci, sbíratelné předměty + pevný HUD, NPC + dialog, souboj nárazem (HP, i-frames) a quest (úkol → odemknutí dveří → dosažení cíle).

Procházejte je popořadě — každý předpokládá základy těch předchozích.

V desktopovém simulátoru (není potřeba žádný hardware — renderuje headless, ukládá PNG):

python3 sim/run.py tutorials/01-bounce/step3_ball.py --shot /tmp/out.png

Užitečné flagy: --frames N (jak dlouho běžet), --hold RIGHT,B (drž tlačítka po celou dobu běhu, takže můžeš testovat vstup headless), --backend pygame (živé, hratelné okno, pokud máš nainstalovaný pygame).

Na PicoPadu (nebo jakékoli podporované desce): zkopíruj soubor kroku plus lib/ helpery, které importuje, na CIRCUITPY/ a pojmenuj jej code.py (nebo jej importuj). Hlavičkový komentář každého souboru vypisuje, co potřebuje.

Jak je strukturován každý krok

Sekce “Jak je strukturován každý krok”
  • Hlavičkový komentář uvádí, co se naučíš, co je nové oproti předchozímu kroku a přesný příkaz pro spuštění.
  • Inline komentáře označují nové řádky, takže změnu vidíš na první pohled.
  • README v každé složce tutoriálu provede celým obloukem s vysvětlením „proč“ a každý krok zakončí úpravou Try it (změň číslo, vnímej rozdíl).

Části enginu, které potkáš

Sekce “Části enginu, které potkáš”

Všechny helpery žijí v lib/ (čistý Python, fungují na zařízení i v simulátoru):

HelperRole
picogame_game.setup()převezme display, vytvoří Scene + strip buffery
picogame (C modul)Sprite, Bitmap, Tilemap, Particles, Canvas, Scene, collide, rgb565
picogame_inputtlačítka → bitmask, pressed / just_pressed
picogame_clockstrop snímkové frekvence + dt; akumulátor pevného časového kroku
picogame_shapesgeneruje plné/kulaté/polygonové bitmapy (obdélníky, míčky, lodě)
picogame_poolsprite pool pevné velikosti pro spawnery (střely, nepřátelé)
picogame_collidecollision testy bez alokací, které čtou pozice sprite
picogame_uiSceneLabel (text HUD ve scéně), text box, menu
picogame_fontrenderuje řetězce do bitmap pomocí přibaleného fontu
picogame_audiopípnutí (tone()) a přehrávání .wav

Po tutoriálech: přestaňte scény psát ručně

Sekce “Po tutoriálech: přestaňte scény psát ručně”

Jakmile mechanikám rozumíte z ruky, nemusíte v Pythonu pořád ručně umisťovat každý tile a sprite. Editor (editor/) vám umožní malovat mapy, umisťovat sprite a označovat tiles vizuálně a pak exportovat scénu, kterou za vás sestaví loader picogame_scene — tatáž data běží na zařízení i v simulátoru. Podívejte se na examples/picogame_platformer_scene.py pro kompletní hru, jejíž level (tiles, collisions, mince, nepřátelé, kamera) se načítá z editorových dat, a v Pythonu zbývá jen samotná hratelnost. To je přirozený další krok: tutoriály učí mechaniky, editor odstraní boilerplate s nastavováním.