Я создал эту функцию, чтобы иметь возможность проверять, соприкасаются ли два объекта в модели типа столкновения AABB, но я не могу понять логику или, скорее, почему она не работает.
function hitTest(x1, y1, w1, h1, x2, y2, w2, h2) {
//x1, y1 = x and y coordinates of object 1
for (var x = 0; x < AliLength; x++) {
x1 = AliensArrR1[x].getX();
y1 = AliensArrR1[x].getY();
}
//w1, h1 = width and height of object 1
w1 = 50;
h1 = 18;
//x2, y2 = x and y coordinates of object 2 (usually midpt)
for (var x = 0; x < bullets.length; x++) {
x2 = bullets[x].getX();
y2 = bullets[x].getX();
}
// w2, h2 = width and height of object 2
w2 = 3;
h2 = 13;
if ((x1 <= x2 && x1 + w1 >= x2) &&
(y1 <= y2 && y1 + h1 >= y2) && (x2 <= x1 && x2 + w2) && (y2 <= y2 && y2 + h2))
alert("Hit");
else
return false;
};
В каждой строке есть 12 изображений и массив для каждого, сейчас я не беспокоюсь о производительности, просто хочу убедиться, что смогу заставить его работать на одном и получить правильную логику.
Любые предложения очень ценятся!
редактировать: я пытаюсь проверить, перекрывается ли когда-либо один объект шириной 18 и 50 с моим другим объектом шириной 3 и высотой 13. Они никогда не меняют только изменение осей x и y. Я новичок в обнаружении столкновений и после пары попыток применить логику проверки x и y на каждом, чтобы увидеть, пересекаются ли они. Я думал, что попрошу помощи, так как явно иду в неправильном направлении.
![Это то, чего я пытаюсь добиться]:http://uploads.gamedev.net/monthly_06_2011/ccs-8549-0-64600400-1307074262.gif
alert()
. В JS только имена функций-конструкторов должны начинаться с заглавной буквы. - person Teemu   schedule 12.04.2014Alert()
выдаст вам справочную ошибку... - person Teemu   schedule 12.04.2014for
значения x1 и y1 будут последним элементом в массиве ali, то же самое относится к циклу x2 y2. - person Tom Roggero   schedule 12.04.2014x
иy
, даже переменные цикла, и просто добавляя к ним числа, даже небольшой код, подобный этому, может быть очень трудным для чтения. - person Ingo Bürk   schedule 12.04.2014x1 <= x2
иx2 <= x1
иy2 <= y2
? Что делаетy2 + h2
? Я предлагаю разбить ваши условия и уточнить, что они должны делать - person wongcode   schedule 12.04.2014