1
我想從距離特定方向「看」的另一個節點獲取距最近節點(如果有一個)的距離。在特定方向上獲取距離最近的SpriteKit節點
在圖像中,「P」是玩家的節點,線是要看的方向。圓環是另一個節點,穿過方向線。
獲得2個節點之間的距離是沒有問題的,但我怎麼訪問正好穿越我行最近的節點?
我想從距離特定方向「看」的另一個節點獲取距最近節點(如果有一個)的距離。在特定方向上獲取距離最近的SpriteKit節點
在圖像中,「P」是玩家的節點,線是要看的方向。圓環是另一個節點,穿過方向線。
獲得2個節點之間的距離是沒有問題的,但我怎麼訪問正好穿越我行最近的節點?
我假設你的精靈有一些半徑,而crossing my line
表示從線條到精靈中心的距離小於半徑。
讓playur點爲P,方向角是網絡連接,所以單位方向矢量是
dx = cos(fi)
dy = sin(fi)
和線方程是
- x * dy + y * dx + q = 0
where
q = dy * p.x - dx * p.y
爲了找到到該行從子畫面中心的距離,替代X y與center.x和center.y
dist = - center.x * dy + center.y * dx + q
因此,通過精靈列表,檢查sp儀式相交(dist < spriteRadius
)並選擇最接近的相交精靈
創建一個SKShapeNode,它跟隨'視線',然後使用'node intersects node'方法來查看線上有哪些節點? –
@SteveIves需要檢查每個節點。 OP,查看射線測試或點擊測試,因爲這是你想要做的。除了使用物理世界來獲得你想要做的事之外,我不知道任何事情。 – Knight0fDragon
@ Knight0fDragon如果你能想出一個粗略的例子,那麼看到 – Fluidity