LibGDX:setPosition()在Android中不起作用

时间:2014-06-23 15:22:40

标签: java android libgdx positioning scene2d

我试图使用setPosition()方法定位一组actor。当我添加演员时,我想连续地将画面集中在画面中,也就是说,我添加一个演员,该组以一个演员为中心;我添加了第二个演员,该组再次居中,但现在有两个演员,依此类推。我使用下一个操作来执行此操作:

Gdx.graphics.getWidth() - submitGroup.getMinWidth()) / 2 // Height is 0.

组的最小宽度是演员宽度的总和。在桌面上工作完美,但在Android中没有任何效果,我不知道为什么。它不像我预期的那样居中,我很困惑。这是我的代码和两个截图(桌面和Android)。

a.setSize(50, 50);
b.setSize(50, 50);
c.setSize(50, 50);
submitGroup = new HorizontalGroup();
submitGroup.addActor(a);
submitGroup.addActor(b);
submitGroup.addActor(c);
submitGroup.setPosition((Gdx.graphics.getWidth() - submitGroup.getMinWidth()) / 2, 0);
submitGroup.align(Align.bottom);
stage.addActor(submitGroup);

Desktop

Android

正如在第二部分中所看到的,演员不在中心。我的游戏是800x480。发生了什么事?有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

最后,我解决了为Gdx.graphics.getWidth()更改800的问题。为什么这样?

因为我使用ScalingViewport 800x480并且它与我的舞台相关联。因此,此视口显示了我在构造函数中指示的区域,也就是说,我没有创建具有屏幕高度和屏幕宽度的ScalingViewport。因此,我必须采用视口的大小,而不是屏幕的大小。

我希望这有助于某人。我将不胜感激任何评论或改进这个答案。