![](/img/trans.png)
[英]How can I improve the collision detection in this vanilla JS TileMap game?
[英]Javascript(gameQuery game) how can I get the next bottom element in the tilemap?
如何在不遍历整个tilemap的情况下获取所选tile的下一个底部元素(id,class)? 例如:我的图块$('。gQ_tileType_4')是游戏中的一块石头,如果下一个底部图块$('。gQ_tileType_8')是一个空格,则该图块应该掉落。 现在,我遍历整个tilemap并将元素与那里的xy坐标进行比较。 但是我认为这是错误的方法,因为游戏性能正在降低。
gameQuery为通过以下方式构造的每个图块提供唯一的ID:
$.gameQuery.tileIdPrefix+name+"_"+row+"_"+column
这意味着,如果将您的tilemap称为“ foo”,则可以通过以下方式访问位置(a,b)的tile:
$("#"+$.gameQuery.tileIdPrefi+"foo_"+a+"_"+b);
以同样的方式,您可以通过解析其ID来推断出图块的位置(按索引)。 这意味着对于给定的图块,您可以找到它的位置并专门探查波纹管的状态。
我不确定使用平铺地图是最好的解决方案,因为它们不应更改。 目前它不会造成任何问题,但我无法保证在将来的版本中不会破坏某些功能,例如碰撞检测。
在这种情况下,我将仅使用精灵显示元素。 为了使游戏的游戏逻辑实现更快,我将简单地将图块状态存储在二维数组中,并存储对关联的精灵的引用。
这样,您就可以简单地使用数组并根据需要更新关联的精灵。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.