2012-02-21 141 views
0

我剛開始開發2D安卓遊戲,就像打壁球一樣。 情景是(有3個相同類型的錯誤在隨機方向移動,當我按其中一個它消失等...)OpenGL ES中的座標

我使用opengl es.Its一個簡單的2D遊戲和我的相機在操作中被固定在一個位置上。我知道我的手機屏幕座標與我的opengl座標不匹配,因此我必須自己組合/轉換它們。

很抱歉,如果我的問題似乎是愚蠢的,我只是一個初學者....

問題1(或許是爲了創造這個遊戲中最重要的事情)。正如我告訴我有3個相同的對象(錯誤)。我怎樣才能同時在opengl中跟蹤每個人的座標?

問題2.是否有任何一種將屏幕座標與操作結合起來的簡單方法?或者我應該自己做。

回答

0
  1. 你應該能夠使用任何你喜歡的數據結構來跟蹤每個對象的座標。用最簡單的術語來說,它可以是一個包含「世界空間」中的x和y座標的結構。每次迭代,您都會根據速度和方向更新這些座標,然後再次繪製對象。沒有任何聰明的優化(如果只有少數對象,你可能不需要),你可以通過調用移動你的位置到對象的座標並調用draw來做到這一點。

  2. 我相信在opengles中你必須自己跟蹤這個。

在opengl中工作時,通常會記錄「世界空間」中的座標,它表示對象的概念世界座標。然後,每個對象都可以擁有自己在「模型空間」中繪製自己的知識,該模型空間基本上假定對象以(0,0)爲中心,並允許您指定腿部和頭部位置以及與(0 ,0)。

最後一步是將座標投影到「屏幕空間」,該屏幕空間映射到您的視口設置爲(基本上是您的屏幕)。座標之間的轉換通常由模型視圖和投影矩陣完成。模型視圖矩陣將您的世界座標轉換爲相機座標(即相對於您的相機),投影矩陣將這些座標轉換爲視口座標(即您的屏幕座標)。

這可能聽起來很多,但一旦你得到了這些矩陣的一堆,它就成爲第二天性。我確信有opengl modelview投影矩陣的教程。讓我們知道你是否有更具體的問題...

+0

謝謝你的回答,它的信息很豐富。無論如何,我唯一不知道的是,如果他們隨機移動,我將如何跟蹤他們的位置。有沒有辦法立即檢查我的對象在「世界空間」中的座標是什麼 – user1223513 2012-02-21 17:15:18

相關問題