Ha csinálni kell egy téglalap alakú pályát egy játékhoz, akkor azt tömbként érdemes csinálni vagy van valami jobb módszer?
Hát azért az nagyban függ attól, hogy milyen jellegű játékról van szó. Ha egy egyszerű Torpedó játék a cél, akkor bőven elég. Ellenben ha már valami komolyabbra lenne szükség, akkor azt másképp érdemes csinálni.
Kezdésnek felveheted a térképet:
class Map {
.. //Ebben tárolod a terepet (pl. hol van víz, hol van hegy, stb.)
.. List<ITerrainObject> TerrainObjects;
.. //Ebben pedig minden más, a játékmenethez kapcsolódó objektumot (pl. épületek, emberek...)
.. List<IGameObject> GameObjects;
.. int Width;
.. int Height;
}
Utána pedig elkezdhetsz agyalni, hogyan nézzenek ki az objektumaid:
interface IObject {
.. int XPosition;
.. int YPosition;
.. int Width;
.. int Height;
}
interface ITerrainObject : IObject{
}
interface IGameObject : IObject {
}
És ezekre az interfészekre építve szépen menni fog a játékod.
Nem csak a programnyelvtől függ. Át kell gondolni, hogy a pálya mezőihez milyen módon, milyen gyakorisággal fogsz hozzáférni, olvasásva vagy írva az adatot. Megtörténhet, hogy egydimenziós tömbként gyorsabb lesz a kezelése, de mindenféle alakzat szerint is bejárható, a mező azonosítására pedig segédadatot generálunk. Ennek a sebességét az adat és a paraméterek adattípusa is befolyásolja. Szintén gond lehet a nagyon nagy pályát ábrázoló számhalmaz tárolásakor a felhasznált memória mérete, az integer számtömbök helyett gazdaságosabb módszerre lehet szükség, byte típusra, vagy akár mezőnként néhány bites megfeleltetésre is.
De egy átlagos esetben a két dimenziós számtömb teljesen rendben van.
Csak tömbben lehet.
Hogy te egy komplex struktúrát tárolsz tömbben, vagy integert, netán csak biteket, az részletkérdés.
Ha PC-s megvalósítás és nem igényel összetett struktúrát, akkor az integert ajánlom, mert az a leggyorsabb.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!