gpt4 book ai didi

java - libGDX 坐标系

转载 作者:行者123 更新时间:2023-11-30 04:28:46 28 4
gpt4 key购买 nike

我正在尝试在 libGDX 中正确配置我的 CameraSprite,以正确显示在 2D 坐标系中,原点位于左下角。

我像这样设置我的相机:

cameraWidth = Gdx.graphics.getWidth();
cameraHeight = Gdx.graphics.getHeight();
camera = new OrthographicCamera(1, cameraHeight/cameraWidth);

我像这样设置我的Sprite:

sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
sprite.setScale(scale);
sprite.setPosition(startX,startY);

我的问题是sprite.setSize(x,y)。如果我将所有 Sprite 的大小设置为(1,纹理纵横比),那么所有内容都会以正确的显示比例绘制(不会被模糊或拉伸(stretch)),但没有任何内容会绘制在正确的位置。例如,如果我在 (0,0) 处绘制某些内容,它将以左下角离开屏幕左侧并向上移动多个像素的方式进行绘制。

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

这似乎是一个简单的问题,我只是想知道如何设置它,以便我可以拥有一个合理的坐标系,以正确的长宽比在正确的位置绘制事物。谢谢。

最佳答案

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

如果您调整相机,使 (0, 0) 位于屏幕的左下角,并记住可见的 y 轴只会上升到grapicsHeight/graphicsWidth,那么这应该可以解决你的坐标问题。

我建议将相机设置为指向屏幕中间而不是左下角。有一个例子here这正是这样做的,绘制一个始终位于屏幕中心的 2:1 矩形,无论您调整大小多少,其比例始终为 2:1。

关于java - libGDX 坐标系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15148198/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com