我的阵列有问题。我创建了它们(不确定是否设计正确),但是很难理解如何对其进行检查。
我的数组是这样创建的:
id = i++;
uid = my_id;
imgwidth = img[0].width;
imgheight = img[0].height;
spritea[uid] = new Array();
spritea[uid][0] = abposx;
spritea[uid][1] = abposy;
spritea[uid][2] = imgwidth;
spritea[uid][3] = imgheight;
我只是假设这是存储有关图像位置信息并为其赋予唯一ID的正确方法。
然后,我想对以下示例条件进行检查:
if (x > spritea[0] && x < spritea[0]+spritea[2]){
var uid = //get the UID of the array ;
}
但是我认为我的数组结构错了吗?有什么建议吗?
最佳答案
使用一个对象。比较干净:
function create_image(id) {
this.id = id;
this.height = 0;
this.width = 0;
this.x = 0;
this.y = 0;
}
my_image = create_image(++i);
my_image.width = img[0].width;
my_image.height = img[0].height;
my_image.x = abposx;
my_image.y = abposy;
对于搜索,请尝试以下操作:
found_image = false;
for (var i = 0; i < spritea.length; i++) {
if (spritea[i].width == 4) {
found_image = spritea[i];
break;
}
}
if (found_image) {
// found_image is your image
}