0

如何在不遍历整个 tilemap 的情况下获取选定图块的下一个底部元素(id、类)?例如:我的瓷砖 $('.gQ_tileType_4') 是游戏中的一块石头,如果下一个底部瓷砖 $('.gQ_tileType_8') 是空格,它应该会掉下来。现在我循环遍历整个 tilemap 并将元素与 xy 坐标进行比较。但我认为是错误的方式,因为游戏性能正在变慢。

4

1 回答 1

1

gameQuery 为按以下方式构建的每个图块提供唯一的 id:

$.gameQuery.tileIdPrefix+name+"_"+row+"_"+column

这意味着如果您的 tilemap 被称为“foo”,那么您可以通过编写以下内容访问位置 (a,b) 的图块:

$("#"+$.gameQuery.tileIdPrefi+"foo_"+a+"_"+b);

以同样的方式,您可以通过解析它的 id 来推断图块的位置(按索引)。这意味着对于给定的图块,您可以找到它的位置并专门探测下面的图块的状态。

我不确定使用 tile-maps 是不是最好的解决方案,因为它们不应该改变。目前它不应该引起任何问题,但我不能保证在未来的版本中这不会破坏一些功能,比如碰撞检测。

在这种情况下,我会简单地使用精灵来显示元素。为了使您的游戏的游戏逻辑实现更快,我只需将图块状态存储在二维数组中以及对关联精灵的引用。

这样,您可以简单地使用数组并在需要时更新关联的精灵。

于 2013-07-28T07:51:55.330 回答