LIBGDX-在表格中获取演员的位置

时间:2016-03-13 23:40:39

标签: libgdx

好吧标题说明了一切,我想把一个演员的位置放在一张桌子里

  

按钮按钮=新按钮(bs);

     

table.add(按钮).WIDTH(50).height(50);

     。

table.top()中心();

提前致谢。

编辑:button.localToStageCoordinates(new Vector2(button.getX(), button.getY())); 我得到一个接近的位置但不精确,这里是一个屏幕截图,红色正方形是我得到的位置,而透明正方形是按钮。

enter image description here

2 个答案:

答案 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指出我正确的方向。