私は JavaScript と HTML が初めてで、小さなゲームに取り組んでいます。
キャンバス上の位置が配列'enemyX'および'enemyY'の値によって決定される4 つの「敵」があります。
非常に簡単に言えば、敵が「衝突」したかどうか、つまり互いに移動したかどうかを検出したい30px
(敵の画像は 30px x 30px)。
私がしたいのは、配列内の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;
}
このコードにより、空白のキャンバスが表示されます。