2015-06-22 158 views
-1

我目前使用像素作为单位在我的世界中放置物体,但是这可能会很乏味,因为我只有每隔16个像素放置物体。例如,我希望能够在位置2放置一个对象,并使对象在像素位置32处呈现。使用世界坐标

我想知道是否最好的方法是使像素到单元根据我需要用像素做什么或者是否有更好的方法来进行变量和乘/除。

+0

我会说使用像素不是很好,因为你直接取决于屏幕大小。大多数渲染框架无论如何都使用某种形式的投影,并定义世界坐标中的对象位置,然后将其投影到屏幕上,即转换为像素。试着看看如何在libgdx中使用投影。 – Thomas

+0

除此之外,由于我假设您正在开发某款游戏,因此Game Dev网站可能更适合:http://gamedev.stackexchange.com/ – Thomas

回答

0

您不应该使用不变的像素到单位转换,因为这会导致不同屏幕尺寸/分辨率下的不同行为。
另外不要忘记不同的长宽比,你也需要关心它们。
您应该如何解决此问题的方法是使用Viewports
其中一些支持虚拟屏幕尺寸,这正是您正在寻找的。您可以计算虚拟空间中的所有内容,并且Libgdx会将这些内容转换为像素。
他们还以不同的方式关注不同的长宽比。
例如,FitViewport显示黑色边框,如果纵横比与虚拟比例不同。
StretchViewport而不是显示黑色边框拉伸图像以适应屏幕。