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 | Žánr | Co učí |
|---|---|---|
| 01-bounce | Breakout / Arkanoid | render 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-starship | top-down vesmírná střílečka | rotace 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-quest | top-down RPG | svě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.
Jak spustit krok
Sekce “Jak spustit krok”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.pngUž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):
| Helper | Role |
|---|---|
picogame_game.setup() | převezme display, vytvoří Scene + strip buffery |
picogame (C modul) | Sprite, Bitmap, Tilemap, Particles, Canvas, Scene, collide, rgb565 |
picogame_input | tlačítka → bitmask, pressed / just_pressed |
picogame_clock | strop snímkové frekvence + dt; akumulátor pevného časového kroku |
picogame_shapes | generuje plné/kulaté/polygonové bitmapy (obdélníky, míčky, lodě) |
picogame_pool | sprite pool pevné velikosti pro spawnery (střely, nepřátelé) |
picogame_collide | collision testy bez alokací, které čtou pozice sprite |
picogame_ui | SceneLabel (text HUD ve scéně), text box, menu |
picogame_font | renderuje řetězce do bitmap pomocí přibaleného fontu |
picogame_audio | pí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.