我有兩個座標對,存儲爲名爲ap1 {x:x, y:y}
和ap2 {x:x, y:y}
的對象。 我想創建一個if語句來看看他們是嚴格按照下列之一:javascript比較兩個座標對的位置
- 一個是一個空間在任何方向的對角線與其他
- 一個是一個空間的上方或下方的其他
到目前爲止,以下是我的代碼:
if((ap1.x == ap2.x &&(ap1.y == ap2.y + 1 && ap1.x == ap2.x || ap2.y == ap1.y + 1))
|| (ap1.x == ap2.x + 1 && ap1.y == ap2.y + 1)
|| (ap2.x == ap1.x + 1 && ap2.y == ap1.y + 1)
|| (ap1.x == ap2.x - 1 && ap1.y == ap2.y - 1)
|| (ap2.x == ap1.x - 1 && ap2.y == ap1.y - 1))
但有了這個,廣場被一個空間左下角或其他唐的右上方沒有回報。我如何按照我想要的方式製作這個功能? 這裏是一個形象:
我想我的代碼的另一種改進,這不起作用或者:
if(ap1.y == ap2.y + 1||ap1.y == ap2.y - 1||(ap1.x == ap2.x + 1 && ap1.y == ap2.y + 1)||(ap1.x == ap2.x - 1 && ap1.y == ap2.y - 1))
這是繪製圖片可以派上用場的地方。網格如何工作以及物體如何移動?取決於它可能比你想象的更容易。 –
網格方塊是1x1嗎?請注意,這是可能的,這是基本的碰撞檢測。 –