Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript(gameQuery游戏)如何获取tilemap中的下一个底部元素?_Javascript_Game Engine_Gamequery - Fatal编程技术网

Javascript(gameQuery游戏)如何获取tilemap中的下一个底部元素?

Javascript(gameQuery游戏)如何获取tilemap中的下一个底部元素?,javascript,game-engine,gamequery,Javascript,Game Engine,Gamequery,如何在不循环整个tilemap的情况下获取所选tile的下一个底部元素(id、类)?例如:我的磁贴$('.gQ_tileType_4')在游戏中是一块石头,如果下一块底部磁贴$('.gQ_tileType_8')有一个空格,它应该会掉下来。现在我在整个tilemap中循环,并将元素与xy坐标进行比较。但我认为这是一种错误的方式,因为游戏的表现正在放缓 gameQuery为通过以下方式构造的每个分片提供唯一的id: $.gameQuery.tileIdPrefix+name+"_"+row+"_"

如何在不循环整个tilemap的情况下获取所选tile的下一个底部元素(id、类)?例如:我的磁贴$('.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来推断互动程序的位置(索引方面)。这意味着对于给定的互动程序,您可以找到它的位置,并专门探测以下互动程序的状态

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

在这种情况下,我只需要使用精灵来显示元素。为了使游戏的游戏逻辑实现更快,我只需将瓦片状态存储在二维数组中,以及对相关精灵的引用

通过这种方式,您可以简单地使用阵列并在需要时更新关联的精灵