Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemAnketa Vnitřní koloběh hry

Chtěl bych naprogramovat v Monogame hru na způsob Minecraft 2D. Přemýšlím jaký "vnitřní koloběh" hry by byl nejlepší. Počet částic Block bude asi 255 a na asi šířku 10000. Dále musím připustit, že někdy budou i Bloky na sobě. Hraje v tom také výška, odkud svítí světlo.

1, První mě napadlo, že udělám přes několik listů, viz.dole

List<Block> grass;
List<Block> dirt;
List<Block> stone;
...
int[] LightPos;

class Block{
  public int x;
  public int y;
  public Texture2D texture;
}

Vím tento způsob by byl rychlý ve vykreslování, ale pomalý, když by hledal Block na pozici X, Y (tak bych musel prohledat všechny listy).

2, Možná tento způsob, kde svět bude jakoby uložen ve 3 rozměrech (třetí rozměr jsou bloky na sobě)

List<Block>[,] terrain;
int LightPos;

class Block{
   public Texture2D texture;
   public int Id;
   ...
}

Tenhle vypadá pěkně, ale nikdy jsem ho nezkoušel.

3, a taky tento způsob, kde jsou jen v byte uloženy id bloků

List<byte>[,] terrain;
int[] LightPos;

Tohle je jen trochu pomalejší ve vykreslování a taky asi budou muset být zvlášť hodnoty a animací.

4, A nebo tento způsob, kde ve sloupcích=chunkách budou id bloků

Chunk[] terrain;

class Chunk{
   public int LightPos;
   public byte[] BackBlocks=new byte[255];
   public byte[] SolidBlocks=new byte[255];
   public byte[] TopBlocks=new byte[255];
}

5, A tento malinko komplikovanější

Chunk[] terrain;

class Chunk{
   public int LightPos;
   public Block[] BackBlocks=new Block[255];
   public Block[] SolidBlocks=new Block[255];
   public Block[] TopBlocks=new Block[255];
}

class Block{
   public Texture2D texture;
   public int Id;
   ...
}

Vážně nevím, který "vnitřní koloběh" hry zvolit, proto prosím o radu, aby jste mi pomohly se pro jeden rozhodnout.

Pro vnitřní koloběh hry je nejlepší zvolit:

0%
0%
0%
25%
75%

Předmět Autor Datum
Nenašly se žádné odpovědi.

Zpět do poradny Odpovědět na původní otázku Nahoru