好吧标题说明了一切,我想把一个演员的位置放在一张桌子里
按钮按钮=新按钮(bs);
table.add(按钮).WIDTH(50).height(50);
。table.top()中心();
提前致谢。
编辑:button.localToStageCoordinates(new Vector2(button.getX(), button.getY()));
我得到一个接近的位置但不精确,这里是一个屏幕截图,红色正方形是我得到的位置,而透明正方形是按钮。
答案 0 :(得分:4)
尝试:
button.localToStageCoordinates(new Vector2(button.getX(), button.getY()));
这应该返回具有实际位置的Vector2。我认为应该先调用table.validate(),然后才能获得按钮的位置。
validate()调用layout()。创建表后,将在下一次绘制时自动调用layout()。如果你在表初始化之后就需要这个位置 - 我认为你需要调用layout()方法。
layout()说明:
计算和缓存绘图所需的任何信息,如果此actor有子项,每个子项的位置和大小,则调用invalidate()任何宽度或高度已更改的子项,并对每个子项调用validate()。几乎不应该直接调用此方法,而应使用validate()。 覆盖:WidgetGroup中的layout()
validate()说明:
确保演员布局。如果自上次调用validate()以来调用了invalidate(),或者如果需要布置actor,则调用layout()。在执行绘图之前,通常在Actor.draw(Batch,float)中调用此方法。 指定者:布局
中的validate()
答案 1 :(得分:2)
好的,我设法这样做:
button.localToParentCoordinates(new Vector2(table.getX(), table.getY()));
感谢Yasen Bagalev指出我正确的方向。