Libgdx视口

时间:2016-04-05 22:24:04

标签: android libgdx

看起来像一个视口是没用的,但我可能会错过一些东西。

例如,我想制作一个我有物体的游戏,如果我点击屏幕的左侧或右侧,我就死了!所以,如果我使用Gdx.graphis.getWidth()和0,一切都会正常工作。

好的,但是让我们设置viewport = new ExtendViewport(500,800,相机); 酷我没有500和800的虚拟像素===> 5:8 然后我输入命中结束屏幕的逻辑,所以如果object.x< 0或object.x> 800 ---->对象DIES!

但现在我在平板电脑上开始游戏,其分辨率为1500 x 2000 ===> 3:4,现在一切都错了,整个屏幕都向左移动,所以0仍然有效,但800不是右边缘的结束。

然后我使用FitViewport,由于不同的宽高比,现在可以移动左右边缘的碰撞。

似乎我可以使用strechViewport,或者只是手动编写代码...但我知道我错过了一些东西,因为它必须使用它。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

首先,在我看来,将相机置于(0,0)坐标中心是个好习惯。然后,您将始终-screenWidth/2作为左侧屏幕的边缘位置,screenWidth/2作为右侧。

其次,在使用视口时,不应直接使用屏幕坐标。 Viewport有一种将屏幕转换为视口坐标的方法:

    unproject(Vector2 screenCoords)

它也有向后的方法

    project(Vector2 worldCoords)

无论显示器有多大,这些都能让你始终保持相同类型的坐标。