我有一個問題,我不知道如何處理解決方案。 我需要爲我的XNA應用程序創建2D地圖編輯器,並添加一定數量的圖塊。 說一個地圖將是50x100的瓷磚。XNA如何存儲和繪製2D地圖?
我不確定什麼數據結構用於地圖,瓷磚以及如何將它存儲在硬盤上供以後加載。
我現在的想法是這樣的。我將地圖存儲在文本文件中,像這樣:
//x, y, ground_type, object_type
0, 0, 1, 0
0, 1, 2, 1
其中0 =草,1 =河ETCC地面地形,和0 =無,1 =牆對象類型。
然後,我將有一個可以讀取該文件或者從頭開始創建一個新的一個遊戲組件地圖類:
class Map : DrawableGameComponent {
//These are things like grass, whater, sand...
Tile ground_tiles[,];
//These are things like walls that can be destroyed
Tile object_tiles[,];
public Map(Game game, String filepath){
for line in open(filepath){
//Set the x,y tile to a new tile
ground_tiles[line[0], line[1]] = new Tile(line[3])
object_tiles[line[0], line[1]] = new Tile(line[4])
}
}
public Map(Game game, int width, int heigth){
//constructor
init_map()
}
private void init_map(){
//initialize all the ground_tiles
//to "grass"
for i,j width, heigth{
ground_tiles[i,j] = new Tile(TILE.GRASS)
}
public override Draw(game_time){
for tile in tiles:
sprite_batch.draw(tile.texture, tile.x, tile.y etc..)
}
我的瓷磚類可能不會是一個遊戲組件。 我仍然不確定如何處理來自玩家的子彈與地圖對象之間的碰撞檢測。是否應該由Map類或某種超級Manager類來處理?
歡迎任何提示。 謝謝!