2013-05-01 175 views
0

我正在做一個簡單的遊戲,有一些移動的點。玩家在一些移動點周圍繪製一個閉合的形狀,如果所有的點都是相同類型的,那麼對玩家有一個分數。路徑以點爲單位並存儲到一個數組列表中。我的問題是,如何檢查路徑中是否有物體?檢查對象是否在路徑中

編輯:可以用Region類和裏面的方法(int x,int y)來完成嗎?

+0

的路徑是由玩家繪製的線? – David 2013-05-01 19:43:32

+0

是的,玩家所畫的線。 – 2013-05-01 19:47:03

+0

幾個圖片將是一個很好的補充 – qdii 2013-05-01 19:47:28

回答

0

封閉形狀可以是任何多邊形還是僅限於矩形?如果它可以是任何多邊形,那麼這聽起來像一個Convex Hull問題(但我必須清除我的算法書,以肯定地告訴你)。如果它是一個凸包問題,那麼你應該能夠用Jarvis march算法解決這個問題。

此外維基百科顯示另一個選項將是Ray Casting。此算法的Java實現可以發現here

+0

它可以是任何多邊形形狀。 – 2013-05-01 20:00:08

0

你將不得不繪製一個矩形..使用矩形類,然後使用點類來使你的觀點。

我覺得這個導入可以幫助你導入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)