当前位置: 首页 > 知识库问答 >
问题:

了解libgdx中的坐标

谢阳成
2023-03-14

我目前正在做一个libgdx项目。这就是我要遵循的结构:

单个游戏-几个屏幕-每个屏幕有一个舞台-每个舞台有一些组-每个组有一些演员-每个演员有一个精灵。

我正在玩在组之间拖动演员,但是当我将演员添加到组中时,即使我指定了其他人,坐标也始终为0,0。

我读过一些关于局部坐标和舞台坐标的内容。

问题是...如何在组的中间添加一个Actor(及其精灵)?

共有1个答案

景鸿才
2023-03-14

将参与者添加到组后,参与者的坐标将相对于组。如果您知道组的宽度和高度,则可以使用以下代码片段,前提是您的actor原点位于其(0,0)点上:

group.addAtor(actor);
actor.setX(group.getWidth() / 2 - actor.getWidth() / 2);
actor.setY(group.getHeight() / 2 - actor.getHeight() / 2);

如果您将原点设置为演员中心点,如下所示:

actor.setOrigin(actor.getWidth()/2, actor.getHeight()/2);

然后,您可以使用以下代码而不考虑演员的宽度和高度:

actor.setX(group.getWidth() / 2);
actor.setY(group.getHeight() / 2);
 类似资料:
  • 从我的阅读中,我了解到LibGdx使用左下角表示0、0和yup。好吧。我看到,如果我愿意,很容易将其改为y,但我不明白接下来创建的代码。 对于创建的默认精灵,位置设置如下。 当我运行这个基本程序时,我看到我添加的标志图像在屏幕上居中。我想要理解的是,为什么设置位置的值是负值,为什么使用sprite width和height而不是视图端口的w、h?如果我更改为屏幕宽度和高度,那么图像将绘制在屏幕右下

  • 问题内容: 我了解这是一个框架;甚至还有一个开源的跨平台游戏开发库。我转到libgdx主页,并按照视频教程中的说明进行操作。正确设置项目后,我可以在多个受支持的平台上运行默认的my- gdx-game项目。太好了,花花公子…现在呢? 我一直在搜索论坛,Wiki,javadocs和许多其他站点,以寻找体面的简单操作方法。不幸的是,我找不到任何东西,那里的大多数帮助都假设您对这个库有一些基本的了解。

  • 我试图更深入地理解OpenGL,但我遇到了以下问题。 这部分描述了我的理解,输出是假设的。 上述代码段的窗口坐标(Wx、Wy、Wz)为 (272.00000286102295,111.99999332427979,5.9604644775390625e-008) (527.99999713897705,111.99999332427979,5.9604644775390625e-008) (527

  • 我的LibGdx程序有问题。我给了我的相机800高480宽。我正在坐标下绘制目标: 但是点击目标后,我的炮弹不会重叠目标矩形。 我在Touch中这样做: 不起作用。 这是一个炮弹游戏: 首先,我正在设置相机。 随机显示坐标范围内的目标。 使用Vector3新位置触摸取消投影相机。 触摸时,用加农炮位置计算目标位置并获得旋转加农炮的角度。 旋转大炮后,我向目标发射球。 现在,当我执行Rectangl

  • 摄像机旋转后,坐标让我摸不着头脑。 我有一个照相机,一个角色和一张地图。这个玩家只能在以下方向行走:北(90°),南(270°),东(0°),西(180°)。 从玩家的camera.RotateRound(...,...,...)位置旋转摄像机后,玩家开始在旋转的结果中向新的方向移动。 null

  • 问题内容: LibGDX具有一个坐标系统,其中(0,0)在左下角。(就像这张图片: http //i.stack.imgur.com/jVrJ0.png) 这让我无法自拔,主要是因为我要移植使用常规坐标系(其中0,0位于左上角)制作的游戏。 我的问题: 有没有简单的方法可以更改此坐标系? 问题答案: 如果您使用相机(应使用),则更改坐标系非常简单: 如果您使用TextureRegions和/或Te