我正在開發OpenGL ES中的一個小遊戲。OpenGL ES - 如何將某個對象保持在固定大小?
在背景中,有一個世界/地圖。地圖只是一個很大的紋理。 縮放/捏/平移用於移動。我正在使用glOrthof(左,右,下,上,zNear,zFar)來實現縮放。 當我放大時,地圖頂部的精靈也放大了。但是我想讓一些精靈保持在一個固定的大小。
我大概計算一個比例係數,根據不同的參數來glOrthof,但必須有這樣做的,而不是縮放精靈下來的時候我放大的更自然,更直接的方式。
如果我在地圖頂部添加一些文本或一些GUI元素,它們應該明確具有固定大小。
是否有解決方案來做到這一點,或者我必須在glOrthof中保留固定值並以其他方式實施縮放/捏合?
編輯:更清晰:我想要精靈一起放大/縮小地圖,但保持相同的大小。 我有一些元素就像iPhone的地圖應用程序的引腳。在縮放時,引腳保持相同的大小,但在屏幕上四處移動以保持在地圖上的相同位置。這主要是我想要的解決方案。 解決方案已經下面,謝謝!
對此進行了快速測試。 當我放大地圖時,精靈保持相同的大小/位置。 此解決方案對於應該保持在iPhone屏幕上的固定位置的元素(如UI元素和文本)將很好地工作。 但我想有一些精靈留在地圖上的相同位置。有點像iPhone地圖應用程序中的引腳。在地圖上縮放/平移時,引腳會保持與地圖相同的位置,但引腳的大小保持不變。 有沒有快速的解決方案呢? :-) – OMH 2009-11-17 09:58:38
在繪製小精靈之前,將一個比例矩陣推到堆棧上(使用'glScalef'或其他)來扭轉世界的縮放比例。 – Thomas 2009-11-17 12:18:44
有趣,但我不太明白。請你詳細說明一下嗎? – OMH 2009-11-17 14:38:07