android - 如何获取特定位置的瓦片及其属性?

标签 android andengine

最近,我正在尝试学习 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/

相关文章:

android - pEntity 已有父级

java - AndEngine - 场景变量在更改场景后不会重置

java - Android Studio 无法解析 R 和布局文件

android - 无法使用 Eclipse 和 Windows 8 为 phonegap 正确安装 ant

java - 问 : How to use OnClickListener with HorizontalScrollView

java - andengine 塔防游戏 - 敌人<-武器交互

android - E/ActivityThread:找不到 com.example.YPLContentProvider 的提供者信息

java - 如何按升序设置数字(示例 : 0, 1, 2, 4, 6 至 0, 1, 2, 3, 4)

android - AndEngine 与 Google Play 游戏服务

java - 地形曲线到点阵列