【发布时间】:2017-08-28 21:55:27
【问题描述】:
我正在尝试将演员定位在窗口内,但是在尝试设置固定位置时,这些设置似乎会正确影响用户界面。
我尝试在窗口内放置一个表格,它可以按您的预期工作,但是在尝试调用时
myactor.setPosition(10,10);
window.add(myactor);
演员不受位置影响。 有没有办法做到这一点,或者窗口中的小部件必须像在表格中一样添加?
【问题讨论】:
我正在尝试将演员定位在窗口内,但是在尝试设置固定位置时,这些设置似乎会正确影响用户界面。
我尝试在窗口内放置一个表格,它可以按您的预期工作,但是在尝试调用时
myactor.setPosition(10,10);
window.add(myactor);
演员不受位置影响。 有没有办法做到这一点,或者窗口中的小部件必须像在表格中一样添加?
【问题讨论】:
可以在 Scene2d 窗口中设置 Actors 的位置。我知道这是一个老话题,但我想我会拒绝雅利安的回答。
您需要使用以下方法:
window.setLayoutEnabled(false)
然后,设置 Actors 位置:
window.findActor("someActorName").setPosition(x,y);
这基本上禁用了默认的窗口布局,因此您添加到窗口的任何actor都将设置为Windows自己的坐标系。
我测试了这个方法,它有效。
查看 LibGDX 窗口 API: https://libgdx.badlogicgames.com/ci/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/ui/Window.html
【讨论】:
Window 是可以拖动并充当模态窗口的表格。 Table 是一个 WidgetGroup,它使用逻辑表格设置其子项的位置和大小,类似于 HTML 表格。
基于表格的布局不依赖于绝对定位,因此会自动适应不同的小部件尺寸和屏幕分辨率。
查看Table 以设置您的 Actor 的位置。
【讨论】: