tetris
1. vzhled
- základní vzhled hry
- vytvoření ohraničení herního pole
- vycentrování pole
- HTML - zakomponování JS a CSS souborů
- HTML - vytvoření pole
- CSS - barva pozadí
- CSS - pozice a rozměry hracího pole
spustit
2. mřížka
- zobrazení mřížky pomocí JS
- zvytvořit funkci na vygenerování buněk herního pole
- JS - window.onload
- JS - funkce createField
spustit
3. ovládání mřížky
- zobrazení L na mřížce pomocí JS
- vytvořit objekt pro buňku (Cell)
- objekt buňky má odkaz na HTML buňku a proměnnou visible
- buňka má funkce pro zobrazení a schování
- JS - objekt Cell
- JS - tvorba globálního dvourozměrného pole (field)
- JS - zápis do pole při tvorbě buněk
spustit
4. posun
- posun existujících buňek (připraveno pro dokončení celé řádky)
- JS - funkce moveDown, která posune všechna políčka o 1 dolu
spustit
5. tvar
- zobrazení a schování pohybujícího se tvaru
- JS - array shapes, která má zatím jen jeden tvar a jeho rotace
- JS - funkce pro zobrazení a schování pohybujícího se tvaru
- JS - objekt movingShape s pozicí, rotací a id objektu
spustit
6. pohyb
- pohyb hlavního tvaru
- zatím neřešíme ovládání ani hitboxy
- JS - cyklus pro pohyb tvaru gameTick
spustit
7. základní hitboxy
- ověření zda se může objekt pohnout směrem dolu
- otestujeme na různých tvarech objektu
- otestujeme na různých tvarech objektu
- JS - funkce canMove, která vrací true/false podle toho zda se může objekt pohnout
- JS - implementace funkce na pohyb
spustit
8. základní hitboxy
- čtení šipek na klávesnici
- posun objektu dolu, doleva a doprava
- vytvoření funkce pro posun objektu
- JS - funkce moveInDirection, která posune objekt zadaném směru
- JS - funkce pro čtení šipek na klávesnici kódy: doleva(37), doprava(39), dolu(40)
spustit
9. postraní hitboxy
- kontrola hitboxů vpravo a vlevo
- JS - změna canMove na canMoveInDirection, která od teď vrací zada se může objekt posunout v určitém směru
spustit
10. tvorba nového objektu
- objevá se nový objekt, pokud se již objekt nemůže pohnout směrem dolu
- JS - funkce nextObject
- JS - ve funkci moveInDirection je výjmka pro objekt, který se nemůže pohnout
spustit
11. rotace objektu
- při stisknutí šipky nahore se objekt rotuje po směru hodinových rafiček
- pokud by po rotaci byl objekt za hranicí obrazovky (vlevo/vpravo) bude posunut
- pokud objekt nemá prostor pro rotaci, neotočí se
- JS - kontrola klávesy šipka nahoru
- JS - rotace objektu
spustit
12. plné řádky
- detekce a smazání plné řádky
- JS - funkce deleteFullLines
- JS - volání funkce při zobrazení nového objektu
spustit
13. všechny tvary
- tvorba externího souboru pro tvary
- odstranění testovacího začátku - hra začíná čistá
- vzor pro tvary
- JS - náhodné id tvaru při generování nového tvaru
- JS - nový externí soubor pro tvary shapes.js
spustit
14. design prostředí
- tvorba externího souboru pro tvary
- odstranění testovacího začátku - hra začíná čistá
- vzor pro tvary
- JS - náhodné id tvaru při generování nového tvaru
- JS - nový externí soubor pro tvary shapes.js
spustit