Specifikace |
|
Knihovna implementující správce chodících postav po 2D mapě.
Implementace má být navržena pro realtimeovou strategii. |
|
Knihovna
Úkolem knihovny je obsluha mapy a postav po ní chodících. Definuje interface pro poskytnutí údajů o mapě, o čase a o stavu postav a interface na jejich změnu.
- definuje interface pro zadávání příkazů pro postavy
- definuje interface pro kontrolu běhu času. definuje datové struktury obsahující seznamy postav a jejich cest, definici mapy, čítač času a další data nutné pro udržování stavu mapy v čase
- umožňuje inicializaci a zrušení mapy (nastavitelná velikost)
- umožňuje přidávat a rušit postavy, měnit jejich parametry
- umožňuje skokové umístění postavy v mapě
- umožňuje naplánovat cestu postavy ze současné pozice do cílové pozice
- umožňuje rušit a přeplánovat (příp. znovunaplánovat) naplánované cesty
- uspokojivým způsobem řeší kolize cest postav
|
|
Pro hledání cest použije A* algoritmus nebo jeho vhodnou modifikaci (bidirectional search, vhodná metrika v mapy, vhodná heuristika).
Systém bude umožňovat předefinování vnitřních funkcí na spočítání heuristiky a vzdálenosti externími funkcemi. |
|
Mapa
- mapa je čtvercová síť = rovinný graf (vrcholy = políčka a přechod z políčka na políčko = hrana)
- každé pole je ohodnoceno TC hodnotou (Terrain cost), která určuje obtížnost průchodu přes políčko, políčka s hodnotou MAXTC jsou neprůchodná
- vnitřně bude mapa reprezentována současně jako graf i jako pole (kvůli výhodě rychlého vyhledání podle souřadnice [x,y] a zjišťování předpokládané vzdálenosti pro heuristiku)
|
|
Postava
- vždy může být jen jedna postava na jednom políčku
- postava musí být umístěna v každém časovém tiku na právě jednom políčku
- postava má svou rychlost (nastavitelné)
- postava může mít nějaké další nastavení, pokud ho bude potřebovat
|