Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Libgdx-Android-My坐标在最底部没有原点_Java_Android_Libgdx_Coordinates_Axis - Fatal编程技术网

Java Libgdx-Android-My坐标在最底部没有原点

Java Libgdx-Android-My坐标在最底部没有原点,java,android,libgdx,coordinates,axis,Java,Android,Libgdx,Coordinates,Axis,我有一个480x800分辨率,我使用以下代码来设置它: cam=新的正交摄影机(); cam.setToOrtho(假、虚_宽度、虚_高度); 视区=新视区(虚拟视区宽度、虚拟视区高度、cam) 在我的代码中没有什么奇怪的地方,但我的问题是原点(0,0)不是在最底部,而是在上面20像素左右。 我怎样才能修好它 FitViewport不保证0,0在居中时位于角落中。所有其他现有视口子类都会这样做,因此请使用其中一个。并确保在游戏或屏幕子类的resize方法的视口中调用update 编辑: 实际上,

我有一个480x800分辨率,我使用以下代码来设置它:

cam=新的正交摄影机();
cam.setToOrtho(假、虚_宽度、虚_高度);
视区=新视区(虚拟视区宽度、虚拟视区高度、cam)

在我的代码中没有什么奇怪的地方,但我的问题是原点(0,0)不是在最底部,而是在上面20像素左右。
我怎样才能修好它

FitViewport不保证0,0在居中时位于角落中。所有其他现有视口子类都会这样做,因此请使用其中一个。并确保在游戏或屏幕子类的
resize
方法的视口中调用
update

编辑:
实际上,FillViewport也不能保证角点的0,0,因为0,0可以裁剪。

@Tenfour04应该就在这里,但我试着解释一下:
FitViewport
用于保证虚拟纵横比(虚拟高度/虚拟宽度)与屏幕上的纵横比相同。因此,如果您的“真实”纵横比(屏幕)不同,则会显示虚拟纵横比,即黑色边框,以创建与虚拟纵横比匹配的“窗口”。
因此,P(0/0)不是屏幕的左下角,而是新“窗口”的左下角。
如果这不是您想要的,那么还有其他的
Viewport
s可以满足您的需要。

例如,
StretchViewport
支持虚拟屏幕大小,并简单地拉伸图像以适应屏幕的实际纵横比。在您的情况下,这可能会更好,但在其他一些情况下,拉伸的图像看起来不太好…

我想您的意思是从ApplicationListener/Screen resize()方法调用viewport.update()?我使用FitViewport是因为我认为在我的resize()中调用它的.uptade()方法我的相机可以有各种屏幕分辨率。我错了吗?我应该用哪一个?@GiuseppeTrapasso这取决于你想发生什么。FitViewport确保由
VIRTUAL\u WIDTH,VIRTUAL\u HEIGHT
定义的矩形完全适合屏幕,因此,如果纵横比与屏幕不匹配,部分屏幕将不使用,因此0,0将不在屏幕的角落。在我看来,ExtendViewport是可能90%的手机2D游戏的正确选择。FitViewport可能只适用于剪切场景或GUI。对于其他10%的游戏,自定义Viewport子类将是解决方案。StretchViewport会导致失真。填充物体,所以你必须经常关注你放置需要被看到的物体的位置。FitViewport使用黑条,所以用户会对你浪费屏幕空间感到恼火。