A WASD gombok segítségével tudunk mozogni, körbenézni az egeret mozgatva, lőni pedig kattintással tudunk. A játék célja minden ellenséges objektum megsemmisítése. Ha a közelünkbe érnek, sebződést kapunk. Amennyiben elfogy az életerőnk, vagy eliminálunk minden ellenséget, a játék bezárul és véget ér.
A program futásához két szöveges fájl szükséges: texture.txt és palya.txt. Mindkettőt a játék gyökérmappájába kell helyezni. A fájlok tartalma és formátuma a következő:
- palya.txt Ez a fájl tartalmazza a pálya méretét, formáját, az entitások és a játékos kezdeti pozícióját. A sorok sorra az alábbiak:
Formátum | Leírás |
---|---|
<x> <y> | Játékos kezdeti pozíciója |
<x> <y> | A pálya mérete |
<x0y0> <x0y1> <...> <x1y0> <...> <...> <xnyn> |
A pálya mátrixa A cella értéke határozza meg a hozzá rendelt textúrát. 0 jelöli a levegőt A játékbeli pálya ennek az átlójára vett tükörképe lesz. |
<n> | Entitások száma |
<id1> <x0> <y0> <id2> <x1> <y1> <...> |
Entitások azonosítója, ez határozza meg a hozzájuk rendelt textúrát, és kezdeti pozíciójuk |
- texture.txt E fájl alapján tölti be a játék a textúrákat. A megadott nevű fájlokat sorrendben rendeli hozzá a program a pálya celláihoz
Formátum | Leírás |
---|---|
<path> | Az alkalmazásikon relatív elérési útja |
<abgr_hex_to_dec> | A padló színe |
<abgr_hex_to_dec> | A plafon színe Mindkét esetben az ABGR formátumú hexadecimális színkódot kell átalakítanunk decimálissá |
<n> | Megkülönböztetett faltextúrák száma |
<path1> <path2> <...> |
Az adott faltextúrák és relatív elérési útjaik |
<n> | Megkülönböztetett entitástextúrák száma |
<path1> <path2> <...> |
Az adott entitástextúrák és relatív elérési útjaik |
Függőleges szinkronizációt használ, az FPS ezért nem megy a képernyő képfrissítési sebessége fölé. Az SDL korlátai miatt egy processzormagot használ. Amit csak lehet megpróbáltam SDL-es függvények segítségével grafikus kártyára átirányítani (textúrák), ettől függetlenül a program az egyszerűség kedvéért mohó, képkockánként újragenerál mindent. A program sebessége közel sem optimális, a használt grafikus könyvtárból fakadóan, hisz az nem erre lett kitalálva.
Prog2 nagyházinak nem ajátnlott beadni, én már megtettem. :3