2012-12-16 101 views
3

我使用了以下代碼​​3210。OPENGL Android獲取我的圖像座標

但我面臨的問題是獲取我的對象的座標。

讓我解釋一下。根據代碼。您只需要以PNG格式添加圖形圖像,並在此處將其引用到課程中。我試圖實現的是一個簡單的碰撞檢測機制。我添加了一個迷宮(如PNG)。並有一個對象(如PNG)通過迷宮中的空白路徑。爲了做到這一點,我需要知道我的對象將通過其移動的座標內的空白空間。

任何人都可以告訴我如何獲得空格作爲(x,y)座標,通過它我可以拿我的對象?

回答

2

如果有一個入口和一個出口的迷宮,或圍繞它包含多個條目或出口目的地中的迷宮開放區,A* search algorithm將做的工作:

注意,這可能在CPU上做得最好。您需要修改路徑段的條件以處理對象大小,一種簡單的方法僅假設路徑寬度爲1個圖像像素。

如果以這種方式修改算法,即它匹配多個目標點,它可能工作得更加平滑,而不需要用於退出的開放區域(一個入口到多個出口)。對於多個起始點或條目分別進行修改可能導致N次運行和路徑比較以找到最短的一個(許多出口的許多條目),或者如果只有一個出口存在(多個條目到一個出口),則反向搜索一個進入許多出口。如果需要多個目標點的路徑,只需繼續搜索,直至找到所有路徑或算法「停止」並停止。

UPDATE:

最好,最靈活的方式,可能會使用一個物理庫支持各種形狀類型,如球,任意凸包等。例如,你可以使用「子彈物理學」庫做碰撞只有檢測,沒有物理模擬(但爲什麼不?)。 2D中基於片段的碰撞檢測可以使用OpenGL遮擋查詢來實現,這對於複雜形狀往往更快。

要集成的圖像,你需要變換/刻度它進行排序的多個壁對象的在座標其中其他形狀以限定空間

簡而言之:碰撞檢測用的任意的頂點數據形狀非常昂貴,開發和在運行時。這是子彈庫的碰撞形狀將會幫助的地方,因爲它們用於表示要繪製的對象的簡化形狀。

+0

我現在不在尋找AI算法。我只需要找到我迷宮的像素數據。簡單的if-else條件將幫助我檢測碰撞。但對於我需要的像素信息。不管怎麼說,還是要謝謝你。 – Debopam

+0

是否要在座標空間之間進行轉換;像將世界空間映射到你迷宮的圖像空間? – Sam

+0

好吧,讓我清楚我想要什麼。在OpenGL中添加形狀時,我們通常將頂點作爲{1.0f,0.0f ...等等}的浮點數組,如果我錯了,請糾正。 你能告訴我如何檢測定義/繪製浮點數組方式的這兩種形狀的碰撞。 – Debopam