java - 了解不同的坐标系,Tiled、Stage、Screen、

标签 java libgdx coordinates

我对所有不同的坐标系感到非常困惑。 我正在使用 LibGDX 和 Tiled。 这些都有自己的坐标系(排序)。

  • LibGDX 屏幕
  • 平铺 map
  • UI相机
  • 正交平铺 map 相机
  • UIStage
  • 平铺 map 舞台

概念太多,我无法再在头脑中理解它们在复杂场景中如何相互影响,例如

  • 屏幕尺寸与平铺 map 尺寸不同
  • 调整屏幕大小时。

有人可以解释一下吗?

非常感谢!

最佳答案

在 2D 游戏中,您实际上只需要考虑正交相机的坐标系。使用特定相机的组合矩阵绘制的任何内容都适合屏幕的矩形(如果正确设置相机,它就不会失真)。

LibGDX 提供了 Viewport 类来帮助设置您的相机。您可以将它们视为摄像机管理器,可以调整摄像机的大小以满足您想要的布置。您可以使用您想要看到的游戏世界所需大小的“窗口”来实例化它们。唯一需要考虑实际屏幕尺寸的地方是在 resize 方法中,您可以将尺寸传递给 Viewport 类,并让它为您处理相机的大小,这样场景就不会扭曲。

您可能有不止一台相机。通常,您的 UI 将有自己的 UI,而游戏世界将有另一个(因为您希望它在世界中移动)。

在输入时,原始 X 和 Y 以屏幕像素坐标给出,但您只需将这些坐标传递给 camera.unproject 方法即可将它们转换为与您的坐标相同的坐标游戏世界。

我不使用图 block ,因此无法具体说明,但应该适用相同的原则。

关于java - 了解不同的坐标系,Tiled、Stage、Screen、,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58362467/

相关文章:

java - 没有用于抢先身份验证的凭据 - 端口返回 -1

java - 你如何计算具有初始高度的弹丸的位移?

android - 在 libGDX 游戏中创建夜间模式

javascript - 使用彼此相邻堆叠的多边形包围多个单独的点集

C: 如何检查两个 [x][y] 坐标是否匹配?

java - 这是 URL 的正确 xml 正则表达式吗?

java - 使用输出参数是否被认为是不好的做法?

java - 如何避免将一个变量从一种方法传递到另一种方法

java - 如何从 *.tmx 文件读取折线?

ios - 无法获取 convertRect : fromView to work