我是JavaScript和HTML新手,正在開發一款小遊戲。將數組內的值彼此進行比較
我有四個「敵人」在畫布上的位置由這些值中的陣列「enemyX」和「enemyY」確定。
非常簡單,我想檢測敵人是否有'碰撞',即相互移動了30px
(敵人圖像是30px 30px)。
我想要做的就是減去我個值的價值同一陣列與其它數值數組中,看看這個值是小於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;
}
此代碼給了我一張空白的畫布。
考慮澄清你的問題。添加一些代碼可以幫助我們正確回答你的問題。 –
是'enemyX'和'enemyY'位於敵方物體的中心嗎? –
您可以使用jsfiddle輕鬆分享您的代碼。 – specialscope