我正在尝试制作一个游戏即时建筑的自制视线,这是一个基于网格的2D顶视图棋盘游戏。该板具有二维阵列中的div,这些div都是黑色的,如果玩家在走廊中也是透明的,该走廊也是具有物体的二维阵列。走廊里有各种各样的街区,我需要考虑它们,所以如果div出现在玩家所在的走廊里,它们就会停止透明。
所以我有一个想法,可以通过x,y值对播放器所在的给定走廊中的对象数组进行排序。
corridors[i].sort(
function(a)
{
if(a.y > playerObj.position.y && a.x > playerObj.position.x) return 1;
if(a.y < playerObj.position.y && a.x < playerObj.position.x) return -1;
return 0;
});
但这似乎不起作用。将div背景颜色更改为透明仍然从数组的第一个索引开始。我希望它从走廊中的球员位置开始,然后向外工作:
O只是一个平铺,P是玩家,X是刚刚变得透明的平铺
OOOOOOOOOOOPOOOOOO
OOOOOOOOOOXPOOOOOO
OOOOOOOOOOXPXOOOOO
OOOOOOOOOXXPXOOOOO
但是对于这个场景的功能,我需要找到如何正确排序我的阵列,我希望你能帮助我。我在网上看到的例子有参数a和b,所以不可能使用外部变量吗?我是否应该将玩家位置创建为新对象并将其推送到数组然后对数组进行排序?
答案 0 :(得分:0)
好的,所以我想我解决了。我只是将排序功能存储在一个新的数组中,然后使用它。