我想在創建像tilemap一樣的二維網格時最小化圖塊對象的大小。我創建了一個short [,]數組,每個[y,x]位置對應一個tile的id。爲此,我創建一個名爲TileType的類並使用Tile Tile根據其id來訪問TileType中關於其自身的信息。就像這樣:使用結構從類獲取信息
struct Tile
{
short typeId;
public TileType Type
{
get
{
return TileType.Get(typeId);
}
set
{
typeId = value.Id;
}
}
}
class TileType
{
public short Id;
public string Name;
public Texture2D Texture;
public Rectangle TextureSource;
public bool IsObstacle;
static List<TileType> types;
static TileType()
{
types = new List<TileType>();
var type = new TileType();
type.Name = "Dirt";
//initialize here
types.Add(type);
}
public static TileType Get(short id)
{
return types[id];
}
}
我通過閱讀有關如何有效地存儲數據的地圖喜歡這個職位發現這一點。我沒有寫這個,只是一個例子。但我的問題是如何使用這種方法在屏幕上繪製一個圖塊?我會設置一種方式,使紋理對應一個tile地圖集中的源矩形(TextureSource)。但我不明白我會如何畫這個。 IE繪製(Tile.Type.Id)?但是Id只是一個簡短的例子。