Přeskočit na obsah

Jak picogame funguje

Tahle stránka je myšlenkový model, na kterém picogame stojí. Žádné nastavování, žádné detaily API — jen pár nápadů, díky kterým ti všechno ostatní zapadne. Pokud jsi už dělal hry jinde, tohle je zároveň nejrychlejší způsob, jak si namapovat to, co znáš, na picogame.

Hlavní myšlenka: popiš scénu, pak řekni, co se pohnulo

Sekce “Hlavní myšlenka: popiš scénu, pak řekni, co se pohnulo”

Většina obrazovky hry se mezi snímky nemění — pozadí zůstává na místě, pohybuje se jen pár věcí. picogame je kolem toho postavený.

Scénu popíšeš jednou (tyhle sprity, tahle tilemapa, tohle pozadí) a pak každý snímek jen změníš to, co se pohnulo (ball.x += 3) a zavoláš scene.refresh(). Engine zjistí, které malé obdélníky se skutečně změnily, a překreslí jen je — nepřekresluje celou obrazovku. Nic se nepohnulo? Na displej se nic neposílá.

Proto skutečné hry běží plynule na malinkém, pomalém čipu: práce na každý snímek je úměrná tomu, kolik se změnilo, ne velikosti obrazovky. Tohle dostaneš zdarma — nikdy to neřešíš sám.

Stavební díly, ze kterých skládáš scénu

Sekce “Stavební díly, ze kterých skládáš scénu”

S těmito pojmy se budeš setkávat všude. Každý z nich je prostě druh věci, kterou můžeš vložit do scény:

  • Sprite — pohyblivý obrázek: hráč, nepřítel, střela, mince. Má pozici, lze ho překlopit, animovat přes frame, škálovat a otáčet.
  • Tilemap — velká mřížka složená z malé sady obrázků dlaždic: úroveň, dlážděné pozadí, cihlová zeď. Levná, protože mřížka ukládá jedno číslo na buňku místo každého pixelu.
  • Bitmap — samotný obrázek, který sprite nebo dlaždice kreslí. Můžeš ho vygenerovat v kódu (kruh, obdélník) nebo ho převést z PNG.
  • Scene — kontejner, který drží všechno výše uvedené a kreslí to v pořadí. Přidáváš do něj věci a každý snímek ho obnovíš.
  • Kamera — scéna má pohled, kterým můžeš pohybovat (set_view), takže svět může být větší než obrazovka a posouvat se, jak hráč chodí.

Existuje ještě pár specializovanějších dílů (kreslicí Canvas, celosnímkové efekty StripDraw, Particles) — po těch sáhneš, až je budeš potřebovat. Pro „co kdy” viz průvodce funkcemi.

Každá hra v picogame má stejný tvar:

  1. Čti vstup — která tlačítka jsou stisknutá.
  2. Aktualizuj — pohni věcmi, spusť herní pravidla, vytvoř a odeber objekty.
  3. Obnovscene.refresh() vykreslí změny.
  4. Počkej — hodiny omezí snímkovou frekvenci, aby hra běžela stálou rychlostí.
while True:
buttons.poll() # 1. vstup
ball.x += speed # 2. aktualizace
scene.refresh() # 3. vykresli, co se změnilo
clock.tick() # 4. udrž snímkovou frekvenci

Všechno ostatní — kolize, zvuk, skóre — se děje v kroku 2. To je celá struktura hry v picogame.

Nejdřív stavíš na svém počítači

Sekce “Nejdřív stavíš na svém počítači”

picogame přichází se simulátorem: úplně stejný herní kód běží na tvém PC, buď jako headless snímky obrazovky (skvělé pro rychlé kontroly), nebo jako živé, hratelné okno. Navrhuješ, ladíš a iteruješ bez dotyku hardwaru — hotovou hru zkopíruješ na zařízení až nakonec. Zařízení i simulátor spouští stejný kód, takže co vidíš na obrazovce, to dostaneš.