簡體   English   中英

大小未知的Tilemap數組

[英]Tilemap array of unknown size

我希望用戶選擇那里的地圖大小,所以我在運行時不知道地圖的大小。 我一直在尋找如何才能成功實現這一目標的方法。 向量變量最接近有效的方法,但在運行時仍無法正常工作。

我想要一個3維數組,所以在標題中我這樣聲明了tilemap。

std::vector<std::vector<std::vector<Tile>>> tileMap;

並在這樣的類中對其進行測試:

World::World(int width, int height, int depth)
{
tileMap.resize(width);
tileMap[0].resize(height);
tileMap[0][0].resize(depth);

tileMap.resize(width);

for (int i = 0;i<width;i++)
{
    tileMap[i].resize(height);
}



for (int y = 0; y < height;y++)
{
    for (int x = 0; x < width; x++)
    {
        tileMap[x,y].resize(depth);
    }
}

std::cout << sizeof tileMap / sizeof tileMap[0][0][0] << std::endl;

}

我知道並非所有數組的尺寸都正確調整了大小,但最后一行僅輸出“ 0”。

有更好的方法來創建未知大小的圖塊嗎? 我需要很多尺寸,例如64 * 64、256 * 256、64 * 1024等(z級別將在生成級別后確定)。 因此,為每種尺寸創建一個數組似乎效率不高。 但是,也許有更好的方法聲明數組,或者我在某處做錯了什么。

您想要tileMap.size() * tileMap[0].size() * tileMap[0][0].size()來獲取切片數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM