-1
我目前使用像素作爲單位在我的世界中放置物體,但是這可能會很乏味,因爲我只有每隔16個像素放置物體。例如,我希望能夠在位置2放置一個對象,並使對象在像素位置32處呈現。使用世界座標
我想知道是否最好的方法是使像素到單元根據我需要用像素做什麼或者是否有更好的方法來進行變量和乘/除。
我目前使用像素作爲單位在我的世界中放置物體,但是這可能會很乏味,因爲我只有每隔16個像素放置物體。例如,我希望能夠在位置2放置一個對象,並使對象在像素位置32處呈現。使用世界座標
我想知道是否最好的方法是使像素到單元根據我需要用像素做什麼或者是否有更好的方法來進行變量和乘/除。
您不應該使用不變的像素到單位轉換,因爲這會導致不同屏幕尺寸/分辨率下的不同行爲。
另外不要忘記不同的長寬比,你也需要關心它們。
您應該如何解決此問題的方法是使用Viewport
s。
其中一些支持虛擬屏幕尺寸,這正是您正在尋找的。您可以計算虛擬空間中的所有內容,並且Libgdx會將這些內容轉換爲像素。
他們還以不同的方式關注不同的長寬比。
例如,FitViewport
顯示黑色邊框,如果縱橫比與虛擬比例不同。
StretchViewport
而不是顯示黑色邊框拉伸圖像以適應屏幕。
我會說使用像素不是很好,因爲你直接取決於屏幕大小。大多數渲染框架無論如何都使用某種形式的投影,並定義世界座標中的對象位置,然後將其投影到屏幕上,即轉換爲像素。試着看看如何在libgdx中使用投影。 – Thomas
除此之外,由於我假設您正在開發某款遊戲,因此Game Dev網站可能更適合:http://gamedev.stackexchange.com/ – Thomas