我正在做一個簡單的遊戲,有一些移動的點。玩家在一些移動點周圍繪製一個閉合的形狀,如果所有的點都是相同類型的,那麼對玩家有一個分數。路徑以點爲單位並存儲到一個數組列表中。我的問題是,如何檢查路徑中是否有物體?檢查對象是否在路徑中
編輯:可以用Region類和裏面的方法(int x,int y)來完成嗎?
我正在做一個簡單的遊戲,有一些移動的點。玩家在一些移動點周圍繪製一個閉合的形狀,如果所有的點都是相同類型的,那麼對玩家有一個分數。路徑以點爲單位並存儲到一個數組列表中。我的問題是,如何檢查路徑中是否有物體?檢查對象是否在路徑中
編輯:可以用Region類和裏面的方法(int x,int y)來完成嗎?
封閉形狀可以是任何多邊形還是僅限於矩形?如果它可以是任何多邊形,那麼這聽起來像一個Convex Hull問題(但我必須清除我的算法書,以肯定地告訴你)。如果它是一個凸包問題,那麼你應該能夠用Jarvis march算法解決這個問題。
此外維基百科顯示另一個選項將是Ray Casting。此算法的Java實現可以發現here
它可以是任何多邊形形狀。 – 2013-05-01 20:00:08
你將不得不繪製一個矩形..使用矩形類,然後使用點類來使你的觀點。
我覺得這個導入可以幫助你導入android.graphics.Rect;
代碼是這樣的:
Rect myrectangleContainer=new Rect(100, 100, 200, 200);
Point dot= new Point(x,y);
然後收集布爾
boolean isDotWithRect=myrectangleContainer.contains(dot.x,dot.y)
的路徑是由玩家繪製的線? – David 2013-05-01 19:43:32
是的,玩家所畫的線。 – 2013-05-01 19:47:03
幾個圖片將是一個很好的補充 – qdii 2013-05-01 19:47:28