picogame — co použít na co
Jedna stránka, jeden úkol: víš, co chceš postavit — tenhle rejstřík říká, kterou část použít, a odkazuje na stránku, která ji vysvětluje. (Jsi v enginu nový? Přečti si nejdřív Jak picogame funguje.)
Kreslení & obrazovka
Sekce “Kreslení & obrazovka”RAM ve zkratce: uchovávaný celoobrazovkový Canvas ≈ 150 KB; StripDraw / Tilemap ≈ 0 — úplné ceny v Kreslicích cestách.
| Chci… | Použij | Detaily |
|---|---|---|
| zobrazit pohybující se objekt (hráč, nepřítel, střela) | Sprite |
Reference |
| nakreslit mapu / velký scrollující svět | Tilemap (1 B na buňku) |
Kreslicí cesty |
| levně nakreslit animovaný celoobrazovkový efekt (obloha, silnice, gradient) | StripDraw (bez uchovávaného pixelového bufferu) |
Kreslicí cesty |
| panel, který se mění zřídka (orámovaný box, ukazatel) | Canvas (uchovává w*h*2 B) |
Kreslicí cesty |
| stavový řádek / HUD / dialog / menu | widgety picogame_ui — vyber podle rozhodovací matice |
Kreslicí cesty · Text a UI |
| rotovat / škálovat sprite za běhu | Sprite.scale / Sprite.angle; pro mnoho stále rotujících objektů připrav snímky předem |
Sestavování scén |
| přebarvit / bliknout / zprůhlednit sprite bez bitmap navíc | blit efekty flash / tint / dither / shadow (vždy jeden naráz) |
Reference |
| ostrá otočka o 90° bez blikotání | transpose + flipy (všech 8 orientací) |
Reference |
| sledovat hráče kamerou | scene.set_view(ox, oy) + HUD vrstvy s fixed=True |
Herní vzory |
| otřes obrazovky / přechod / plynulá kamera | picogame_fx |
Efekty a odezva |
| animovaná voda/láva, cyklování palety | picogame_palette |
Efekty & juice |
| spousta malých jisker / úlomků | Particles |
Reference |
| terén / obloha s přirozenou variací | šum počítaný v C: value2d / fbm2d |
Reference |
| pseudo-3D podlaha nebo first-person stěny | Canvas.mode7 (podlaha, přes picogame_mode7) / picogame_ray (stěny) — obojí do StripDraw |
Pseudo-3D |
| skutečné flat-shaded polygonové 3D (blocky světy, low-poly) | pg.project (dávková projekce, float/fixed podle pg.FPU) + pg.Triangles (C-kompozitovaná dávková vrstva; na canvas cestě Canvas.fill_triangles) |
Pseudo-3D · Reference |
| izometrická deska (RPG / taktiky / builder) | picogame_iso.IsoView (celočíselná projekce + painter’s klíč + dávka emit_blocks) |
Pseudo-3D |
| závodní silnice ve stylu OutRun ve 30 fps | pg.road_edges + Canvas.road (per-scanline smyčka v C, do StripDraw) |
Reference |
Hratelnost
Sekce “Hratelnost”| Chci… | Použij | Detaily |
|---|---|---|
| detekovat zásahy | a.overlaps(b) (box), a.near(b, r) (kruh), picogame_tiles (sonda do mřížky) |
Matematika & kolize |
| vystřelit hodně střel / vytvářet nepřátele | picogame_pool.Pool — často používané sprity znovu využívej |
Úryvky kódu |
| animovat sprite (chůze, klid, výbuch) | sprite.frame ručně, nebo časový modul picogame_anim |
Animace |
| meziscéna / titulní obrázek bez framebufferu | picogame_cutscene (čte postupně z flash) |
Animace |
| číst tlačítka přes stejné API | picogame_input.Buttons |
Vstup a ovládání |
| hrát s USB gamepadem nebo klávesnicí (desky s USB hostem, např. Fruit Jam) | picogame_usbpad / picogame_usbkbd (připojené automaticky přes Buttons) |
Vstup a ovládání |
| dát každému hráči vlastní ovladač (lokální multiplayer) | jeden Buttons(sources=[pad]) na hráče + find_pads() |
Vstup a ovládání |
| tolerovat skok krátce po opuštění hrany nebo stisk před dopadem | picogame_input.Timer |
Spuštění a herní smyčka · Úryvky kódu |
| pohyb nezávislý na snímkové frekvenci | picogame_clock.Clock (dt) / FixedStep (deterministický) |
Boot a herní smyčka |
| opakovatelné náhodné hodnoty a rovnoměrné generování objektů | picogame_rand |
Matematika a kolize |
| přehrávat zvuky (samply vs. synth vs. MIDI) | picogame_audio (WAV) / picogame_synth (synthio) |
Audio a hudba |
| hotová sada charakteristických efektů bez ladění not | picogame_sfx (Kit nad picogame_synth) |
Audio a hudba |
| uložit nejvyšší skóre (pro zobrazení skóre na obrazovce viz Text a UI) | picogame_save (NVM) |
Ukládání & paměť |
| tvořit mnoho úrovní | deklarativní formát scény + editor; malé úrovně napiš ručně | Formát scény · Sestavování scén |
| pauza / menu nad živou scénou | picogame_game.overlay() |
Snippety |
Vejít se do zařízení
Sekce “Vejít se do zařízení”| Chci… | Použij | Detaily |
|---|---|---|
| vejít se do RAM | rozpočet → měření → optimalizace | Vejít se do paměti |
| udržet stálý frame rate | herní smyčka ve funkci, dirty-rect-friendly pohyb, 0-RAM vrstvy | Výkon |
| uložit velkou grafiku / mnoho snímků | zmrazená data vs. soubor→RAM vs. postupné čtení (picogame_stream) |
Vejít se do paměti |
| zmenšit tileset | png2picogame.py --dedup (sloučí otočené a zrcadlené tily) |
Průvodce enginem |
| pochopit rychlé DMA a přenositelné vykreslování | pg.Display vs. běžný busdisplay |
Průvodce enginem |
| běžet v 640×480 přes HDMI (Fruit Jam) | CIRCUITPY_DISPLAY_COLOR_DEPTH = 8 (RGB332, řeší setup() automaticky) |
Spuštění na hardwaru |
| běžet na desce, kterou sis sám zapojil | předpřipravený generický firmware + settings.toml (PICOGAME_BUTTONS, displej, matice, USB klíče) |
Vlastní deska |
| nasadit na zařízení / řešit problémy | .mpy, lib bundle, sériová konzole |
Spuštění na hardwaru |
Stránka Detaily u každého řádku nese chování, náklady i záludnosti — tahle stránka schválně nic z toho neopakuje.