Diskuze: 2D hra
Člen
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Asi jsem nepochopil co potřebuješ. Mapu ? To stačí pomocí pole, kde třeba 0 bude voda, 1 zeď atd. Potom jestli chceš uložení třeba pozice hráče, tak si ho uložíš do txt, třeba jenom přes CSV... ale říkám, nevím přesně co požaduješ. Rozveď tvůj problém
No přesně to jsem myslel no. Ale nevěděl jsem zda bude lepší právě používat pole s hodnotami jako 0-voda, 1-zeď. Nebo jako třeba udělat pole kde zeď má např. souřadnice x-0,y-1. Doufám že jsi pochopil
Jo takhle. No možná i záleží na složitosti terénu. Ale asi bych to řešil čistě číselně..
Udělej si pole i list. Pole na mapu a list na pohyblivé objekty.
Záleží od konkrétního modelu a velikosti mapy, zaplněnosti, potřebné rychlosti čtení.
Např. pokud budeš mít mapu 100000x100000 polí, který bude z 99% poušť, tak je zbytečný ji držet celou v paměti. Taky se zamysli, že jestli máš ty objekty všechny stejně velký.
Konkrétně naopak ukládání objektů do pole i se souřadnicemi tě donutí vytvořit si nějaký kolizní manažer, díky kterému budeš moci pak jednoduše kdykoliv přidat ty větší objekty, případně lepší operace s mapou.
Iterovat mapou třeba 100x100 pokaždé, když se chci pohnout je opruz. To máš 10.000 objektů jen pro terén a musíš je projet všechny, aby jsi se podíval, co je okolo tebe. A to samé platí i pro další objekty, všichni se musí projet se všema. V 2D poli stačí kouknout na souřadnice, je to z časové složitosti konstantní operace. Kolize mezi pohyblivými objekty už bude hračka když jich bude na mapě pár set.
Tam právě začínají ty finesy s mapou. Samotné bloky se pak jakoby odzoomují a vytvoří jejich zjednodušená reprezentace (pro pathfinding), což jde stromově řešit do nekonečna. Díky tomu vlastně i vykreslování mapy lze jednoduše (a efektivně) řešit výpěrem správných sektorů.
Ale jak jsem psal, záleží na přesném použití. Na 2D strategiích, pathfindingu a vůbec mapování, už mám něco naběháno, a každý z běžně používaných principů má svá pro i proti. Záleží od konkrétních požadavků.
Zobrazeno 9 zpráv z 9.