使用世界坐标
Using world coordinates
我目前使用像素作为在我的世界中放置对象的单位,但是这可能会变得乏味,因为我只每 16 个像素放置一次对象。例如,我希望能够在位置 2 放置一个对象,并在像素位置 32 处渲染该对象。
我想知道最好的方法是简单地使用一个像素到单位的变量和 multiplying/dividing 基于我需要对像素做什么,或者是否有更好的方法。
您不应使用常量进行像素到单位的转换,因为这会导致在不同屏幕上出现不同的行为sizes/resolutions。
另外不要忘记不同的宽高比,你也需要注意它们。
你应该解决这个问题的方法是使用 Viewport
s.
其中一些支持虚拟屏幕尺寸,这正是您正在寻找的。您可以计算虚拟 space 中的所有内容,并且 Libgdx 会为您将这些内容转换为像素。
他们还以不同的方式关注不同的纵横比。
FitViewport
例如显示黑边,如果纵横比与虚拟的不一样。
StretchViewport
不显示黑色边框而是拉伸图像以适合屏幕。
我目前使用像素作为在我的世界中放置对象的单位,但是这可能会变得乏味,因为我只每 16 个像素放置一次对象。例如,我希望能够在位置 2 放置一个对象,并在像素位置 32 处渲染该对象。
我想知道最好的方法是简单地使用一个像素到单位的变量和 multiplying/dividing 基于我需要对像素做什么,或者是否有更好的方法。
您不应使用常量进行像素到单位的转换,因为这会导致在不同屏幕上出现不同的行为sizes/resolutions。
另外不要忘记不同的宽高比,你也需要注意它们。
你应该解决这个问题的方法是使用 Viewport
s.
其中一些支持虚拟屏幕尺寸,这正是您正在寻找的。您可以计算虚拟 space 中的所有内容,并且 Libgdx 会为您将这些内容转换为像素。
他们还以不同的方式关注不同的纵横比。
FitViewport
例如显示黑边,如果纵横比与虚拟的不一样。
StretchViewport
不显示黑色边框而是拉伸图像以适合屏幕。