2015-06-22 160 views
-1

我目前使用像素作爲單位在我的世界中放置物體,但是這可能會很乏味,因爲我只有每隔16個像素放置物體。例如,我希望能夠在位置2放置一個對象,並使對象在像素位置32處呈現。使用世界座標

我想知道是否最好的方法是使像素到單元根據我需要用像素做什麼或者是否有更好的方法來進行變量和乘/除。

+0

我會說使用像素不是很好,因爲你直接取決於屏幕大小。大多數渲染框架無論如何都使用某種形式的投影,並定義世界座標中的對象位置,然後將其投影到屏幕上,即轉換爲像素。試着看看如何在libgdx中使用投影。 – Thomas

+0

除此之外,由於我假設您正在開發某款遊戲,因此Game Dev網站可能更適合:http://gamedev.stackexchange.com/ – Thomas

回答

0

您不應該使用不變的像素到單位轉換,因爲這會導致不同屏幕尺寸/分辨率下的不同行爲。
另外不要忘記不同的長寬比,你也需要關心它們。
您應該如何解決此問題的方法是使用Viewports
其中一些支持虛擬屏幕尺寸,這正是您正在尋找的。您可以計算虛擬空間中的所有內容,並且Libgdx會將這些內容轉換爲像素。
他們還以不同的方式關注不同的長寬比。
例如,FitViewport顯示黑色邊框,如果縱橫比與虛擬比例不同。
StretchViewport而不是顯示黑色邊框拉伸圖像以適應屏幕。