Java libGDX坐标系

Java libGDX坐标系,java,2d,libgdx,projection,Java,2d,Libgdx,Projection,我正在尝试在libGDX中正确配置我的相机和精灵s,使其在二维坐标系中正确显示,原点位于左下角 我将我的相机设置为这样: cameraWidth = Gdx.graphics.getWidth(); cameraHeight = Gdx.graphics.getHeight(); camera = new OrthographicCamera(1, cameraHeight/cameraWidth); sprite.setOrigin(sprite.getWidth()/2, sprite.g

我正在尝试在libGDX中正确配置我的
相机
精灵
s,使其在二维坐标系中正确显示,原点位于左下角

我将我的
相机设置为这样:

cameraWidth = Gdx.graphics.getWidth();
cameraHeight = Gdx.graphics.getHeight();
camera = new OrthographicCamera(1, cameraHeight/cameraWidth);
sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
sprite.setScale(scale);
sprite.setPosition(startX,startY);
我将我的
Sprite
s设置为:

cameraWidth = Gdx.graphics.getWidth();
cameraHeight = Gdx.graphics.getHeight();
camera = new OrthographicCamera(1, cameraHeight/cameraWidth);
sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
sprite.setScale(scale);
sprite.setPosition(startX,startY);
我的问题是sprite.setSize(x,y)
。如果我将所有精灵的大小设置为
(1,纹理纵横比)
,则所有精灵都以正确的显示比例绘制(不是涂抹或拉伸),但没有任何精灵在正确的位置绘制。例如,如果我在(0,0)处绘制某个对象,它将使用其左下角离开屏幕左侧并向上绘制若干像素

我注意到,通过改变比例,我可以在不同的地方绘制东西-也就是说,如果我将其设置为
(1,显示纵横比)
东西看起来非常接近在正确的位置绘制-它们只是从中心绘制,而不是从左下角绘制,正如LibGDX指定的那样。唯一的问题是,所有图像都显示为模糊或拉伸,这是不好的


这似乎是一个简单的问题,我只想知道如何设置它,这样我就可以有一个合理的坐标系,在正确的位置和正确的纵横比绘制东西。谢谢。

一旦更改视口以匹配屏幕的纵横比,则(0,0)将不再位于屏幕的左下角,除非屏幕为方形。如果屏幕宽度大于其高度,则x轴的可见部分仍将从0.0变为1.0,但y轴上的0.0现在将位于屏幕底部的某个位置

如果调整相机,使(0,0)位于屏幕的左下角,并记住可见y轴仅上升到GraphicsHeight/graphicsWidth,则应解决坐标问题


我建议将相机设置为指向屏幕中间,而不是左下角。有一个例子就是这样做的,画一个2:1的矩形,它总是在屏幕的中心,无论你调整大小都是2:1的比例。

我找到了解决这个问题的方法:

将相机设置为正交(即使它已经是正交相机)

此外,每个精灵都必须将其位置设置为
(x-sprite.getWidth()/2,y-sprite.getHeight()/2
。我扩展了
sprite
类,并重写了
setPosition
方法来解释这一点。现在,每次设置位置时,
精灵都会去你“认为它们会去的地方”,将
setPosition(0,0)
放在左下角,将
setPosition(1,高度/宽度)
放在左上角


奇怪的是,这画出了以(x,y)为中心的每个精灵点,这是有意义的,因为宽度/2和高度/2是从位置中减去的,除了不减去值不会使
setPosition
通过左下角使精灵居中-它的居中方式我还没有弄清楚。

谢谢,尽管我一直在处理您所说的内容,但它不起作用。