我的场景图层上的按钮配置位置有问题。我正在尝试构建菜单,并用按钮填充它,但它们似乎忽略了setPosition()
等命令。
代码看起来像这样:
Table layerMenuControls = buildMenuControlsLayer();
stage.clear();
Stack stack = new Stack();
stage.addActor(stack);
stack.setSize(GameEngine.VIEWPORT_GUI_WIDTH, GameEngine.VIEWPORT_GUI_HEIGHT);
stack.add(layerBackground);
stack.add(layerMenuControls);
private Table buildMenuControlsLayer() {
Table layer = new Table();
singleplayerButton = new Button(swsSkin, "singlePlayerButton");
singleplayerButton.setPosition((GameEngine.VIEWPORT_GUI_WIDTH / 2) - 64, 64);
layer.add(singleplayerButton);
那里什么也没发生。按钮忽略这些命令并水平地逐个定位。
有什么我可以忘记的吗?
答案 0 :(得分:1)
LibGDX中的表格相对地设定了孩子的位置。所以使用setPosition不起作用。相反,你可以使用Align
首先,您应该设置表格的尺寸和位置,以便知道对齐的位置。我假设您希望桌子占据整个屏幕,如果不是,您可以相应地改变宽度和高度。以下将做到这一点
layer.setSize(GameEngine.VIEWPORT_GUI_WIDTH, GameEngine.VIEWPORT_GUI_HEIGHT);
layer.setPosition(0,0);
然后您可以相对于此表定位按钮等。 要将按钮设置在表格的中心,您可以使用
layer.align(Align.center);
要定位在顶部中心,您可以使用
layer.align(Align.center|Align.top);
要停止添加一行的所有按钮,您需要向表中添加多行。在layer.add(singlePlayerButton);
和您要添加的其他按钮之间,只需拨打layer.row();
即可。这会将您添加到表格中的任何内容置于其后面的新行上。为了让事情看起来更好,你可以使用填充。
希望这有帮助
答案 1 :(得分:0)
来自libgdx
Table
singleplayerButton
上的wiki:
表是一个WidgetGroup,使用逻辑表设置其子项的位置和大小......
基本上,一旦您将layer
添加到setPosition
,其位置就会在表格中的位置设置。在这种情况下,Table
将被忽略。如果您想手动设置按钮的位置,Table
不是您的最佳选择。 BUILD SUCCESSFUL
Total time: 47 seconds
No emails were triggered.
Starting to tag
ERROR: Publisher hudson.plugins.svn_tag.SvnTagPublisher aborted due to exception
java.lang.NoSuchMethodError: hudson.scm.SubversionSCM.getRevisionFile(Lhudson/model/AbstractBuild;)Ljava/io/File;
at hudson.plugins.svn_tag.SvnTagPlugin.parseRevisionFile(SvnTagPlugin.java:242)
at hudson.plugins.svn_tag.SvnTagPlugin.perform(SvnTagPlugin.java:97)
at hudson.plugins.svn_tag.SvnTagPublisher.perform(SvnTagPublisher.java:79)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:770)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:734)
at hudson.model.Build$BuildExecution.cleanUp(Build.java:192)
at hudson.model.Run.execute(Run.java:1805)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:89)
at hudson.model.Executor.run(Executor.java:240)
Finished: SUCCESS
的重点是减轻用户需要定义孩子的位置和大小。