這是幾乎所有Libgdx教程bigest問題之一。它們很棒,但是像素對單位/對話單位是錯誤的。
Libgdx爲Camera
提供了一個很好的解決方案,並且使用新的Viewport
類(其內部工作使用Camera
)提供了更好的解決方案。
它非常簡單,將解決不同的屏幕尺寸/寬高比的問題。
只需選擇一個Virtual_Width
和Virtual_Height
(以米或類似單位考慮它)。例如
例如,人類在2D平臺遊戲中互相爭鬥。 LEts說我們的人類身高2米,所以想想,一個人使用多少屏幕空間?如果我們說,人類應該佔據1/10的屏幕空間,我們的虛擬高度是10 * 2 = 20。現在考慮你所針對的主要方面配給。假設它是16/9,所以你的虛擬寬度約爲35.
接下來,你需要考慮你想要什麼樣的Viewport
。您確定要使用支持Virtual_Width
和Virtual_Heigth
的Viewport
。
您可能需要一個Viewport
,它保留縱橫比並用黑條(FitViewport
)填充屏幕的其餘部分(如果屏幕具有不同的縱橫比),或者您可能希望Viewport
通過拉伸單位填充整個屏幕(StretchViewport
)。
現在只是虛擬的寬度和heigth創建Viewport
並在resize()
方法與給定width
和height
更新。
希望它有幫助。
我和你在一起。每個像素都是一個問題,因爲它不僅會改變屏幕比例,還會改變寬高比。根據屏幕本身的不同,屏幕上的數字看起來很瘦或很寬。那很糟。 – markspace 2014-10-30 05:01:05
'開發人員通常只能使用預定義的世界座標系,並讓相機將其轉換爲所選的屏幕座標。「這是正確的方式 – EpicPandaForce 2014-10-30 09:14:13
可能更適合http://gamedev.stackexchange.com/ (我的意思是「遊戲開發」......) – Marco13 2014-10-30 09:21:56