最近,我正在尝试学习 AndEngine GLES2-Anchor
以在 Android 中创建简单的游戏。我正在使用 TiledMap 并使用 Nicolas 提供的示例,我可以成功地将我的 TiledMap 和我的“播放器”加载到屏幕上。但是,我想知道如何在特定位置(例如:在(260f,280f))获得瓷砖?如果我能得到那个图 block ,我怎么知道它是否包含特定属性(例如属性:“花”、“玫瑰”)?有谁知道怎么做吗?
最佳答案
如果您查看 TMXTiledMapExample,您会发现在加载 map 时它会“计算仙人掌”。将其放在那里并不是因为大多数人想知道有多少仙人掌,而是为了表明这是代码中的一个重要点,可以存储对图 block 及其属性的引用,以便在游戏期间进行查找。
因此,当您解析 map 时,您可以存储对创建的图 block 的引用并根据需要查找它们的属性。
至于知道它在一个点下是哪个图 block ,这是简单的数学运算。 x = 列 * 平铺宽度,y = 行 * 平铺高度。
使用 10x10 瓷砖的示例。 64,93 是什么牌? 在 (Math.floor(64/tileWidth)), (Math.floor(93/tileHeight) 或 6,9
如果您将磁贴存储在一维数组而不是二维数组中,则磁贴位于 rowIndex * rowsTotal + columnIndex
最后一个有用的提示:确保您的行和列顺序正确。调试时很容易让它们翻转。
关于android - 如何获取特定位置的瓦片及其属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16253416/