gpt4 book ai didi

C++高效存储Tile Map瓦片

转载 作者:太空宇宙 更新时间:2023-11-04 16:12:50 30 4
gpt4 key购买 nike

我正在制作一个基于 TileMap 的游戏引擎。

我有一个“Tile”类,它用于定义 block 类型并设置标志以确定属性(isSolid、isEmitter)。现在我有一个 2d 数组的 Tile 对象 [MAP_WIDTH][MAP_HEIGHT]。

现在我知道没有必要为游戏中的每个实际图 block 存储一个新图 block ,但我需要找到一种方法来以更简单的格式存储 map 数据。我最初的想法是存储无符号整数的二维数组(或 vector ),但我无法将其作为可扩展的解决方案。

如何用数字表示每个 Tile?所以在渲染函数中我可以说“从存储在数组中的整数值渲染图 block 的类型”E.G. renderTileType( map [x][y])

抱歉,这是我的第一个问题,请原谅我的任何错误。

提前致谢!

最佳答案

只需将所有独特的 Tiles 存储在一个 vector 中,除了在程序启动期间不需要更改。然后像这样制作一个二维数组:

Tile* map[MAP_WIDTH][MAP_HEIGHT]

然后您可以简单地分配此二维数组中的指针以指向 vector<Tile> 中适当的 Tile . Tiles 的生命周期当然会由 vector 管理,所以你不需要 newdelete任何东西。

关于C++高效存储Tile Map瓦片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26397814/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com