2014-10-30 146 views
4

朋友和我自己都是遊戲開發的新手,我們討論過世界座標和屏幕座標。遊戲開發 - 使用屏幕座標與世界座標

我們正在關注libGDX的精彩在線教程系列,它們使用100 PPM(每米像素)比例因子。如果重新調整屏幕大小,對象的縮放將不再起作用。我的朋友相信這不是問題,他可能是對的。但是,我的印象是,開發遊戲時,開發人員通常只能使用預定義的世界座標系,並讓相機將其轉換爲所選的屏幕座標。我確實理解使用鼠標點擊時需要進行反向轉換等。但是,我關心的是,在世界空間中放置和縮放對象。

我想聯繫這個社區獲取一些專業反饋。

+2

我和你在一起。每個像素都是一個問題,因爲它不僅會改變屏幕比例,還會改變寬高比。根據屏幕本身的不同,屏幕上的數字看起來很瘦或很寬。那很糟。 – markspace 2014-10-30 05:01:05

+3

'開發人員通常只能使用預定義的世界座標系,並讓相機將其轉換爲所選的屏幕座標。「這是正確的方式 – EpicPandaForce 2014-10-30 09:14:13

+0

可能更適合http://gamedev.stackexchange.com/ (我的意思是「遊戲開發」......) – Marco13 2014-10-30 09:21:56

回答

3

這是幾乎所有Libgdx教程bigest問題之一。它們很棒,但是像素對單位/對話單位是錯誤的。
Libgdx爲Camera提供了一個很好的解決方案,並且使用新的Viewport類(其內部工作使用Camera)提供了更好的解決方案。

它非常簡單,將解決不同的屏幕尺寸/寬高比的問題。
只需選擇一個Virtual_WidthVirtual_Height(以米或類似單位考慮它)。例如
例如,人類在2D平臺遊戲中互相爭鬥。 LEts說我們的人類身高2米,所以想想,一個人使用多少屏幕空間?如果我們說,人類應該佔據1/10的屏幕空間,我們的虛擬高度是10 * 2 = 20。現在考慮你所針對的主要方面配給。假設它是16/9,所以你的虛擬寬度約爲35.

接下來,你需要考慮你想要什麼樣的Viewport。您確定要使用支持Virtual_WidthVirtual_HeigthViewport
您可能需要一個Viewport,它保留縱橫比並用黑條(FitViewport)填充屏幕的其餘部分(如果屏幕具有不同的縱橫比),或者您可能希望Viewport通過拉伸單位填充整個屏幕(StretchViewport)。

現在只是虛擬的寬度和heigth創建Viewport並在resize()方法與給定widthheight更新。

希望它有幫助。

1

這是更好的名字爲每米

單位,當你調整你的屏幕,你只需設置一個新的投影矩陣,所以一切正常)

你應該擔心什麼這是一個縱橫比。

一切都是無關緊要的。

回答你的問題 - 保持世界座標。 它也使簡單的添加物理,光計算,任何尺寸(1.8單位,而不是243像素)

+0

每米的單位應該在模型上。模型中的1.0單位應該是一米,或者其他什麼,然後將視角設置爲任何屏幕寬高比。 – markspace 2014-10-30 05:02:52

+0

如果你用單位來計算所有的東西,這個對話就沒有必要,單位也可以是米,但那只是一個名字。在我看來,你應該只是計算你的優先單位的一切,讓相機將其轉換爲像素。 – Springrbua 2014-10-30 09:53:08

+0

這正是我的意思 – ekiyanov 2014-10-30 10:02:26

相關問題