我是 JavaScript 和 HTML 的新手,正在开发一个小游戏。
我有四个“敌人”,它们在画布上的位置由数组'enemyX'和'enemyY'中的值决定。
很简单,我想检测敌人是否“相撞”,即是否30px
相互移动(敌人图像为 30 像素 x 30 像素)。
我想要做的是用同一个数组中的其他值减去数组中第i个值的值,看看这个值是否小于30。小于30的部分是一个 if 语句,那么如何在没有很多代码行的情况下将所有值相减?
这是我根据以下答案尝试过的:
var count = 0;
var innercount = 0;
while (count <= 3) {
while (innercount<=3) {
collisionDetect(count, innercount, enemyX[count], enemyY[count], enemyX[innercount], enemyY[innercount])
innercount++
}
count++
}
var i = 0;
while (i < enemyX.length) {
if (collisionX[i] == 1) {
directionX = directionX*-1;
}
if (collisionY[i] == 1) {
direction = directionY*-1;
}
}
}
}
function collisionDetect(count, innercount, x, y, xX, yY ) {
if ((Math.abs(x-xX)) <=30) {
collisionX[count] = 1
collisionX[innercount] = 1
}
if ((Math.abs(y - yY)) <=30) {
collisionY[count] = 1
collisionY[innercount] = 1
}
return collisionX, collisionY;
}
这段代码给了我一个空白画布。