gpt4 book ai didi

LIBGDX-获取 Actor 在 table 内的位置

转载 作者:行者123 更新时间:2023-12-01 22:53:05 27 4
gpt4 key购买 nike

好吧,标题说明了一切,我想知道 Actor 在 table 内的位置

Button button = new Button(bs);

table.add(button).width(50).height(50);

table.top().center();


提前致谢。
编辑:与 button.localToStageCoordinates(new Vector2(button.getX(), button.getY()));我得到了一个接近的位置但不准确,这是一个屏幕截图,红色方块是我得到的位置,而透明方块是按钮。
enter image description here

最佳答案

尝试:

button.localToStageCoordinates(new Vector2(button.getX(), button.getY()));

这应该返回一个带有实际位置的 Vector2。我认为应该先调用 table.validate(),然后才能获得按钮的位置。

validate() 调用 layout()。在您创建表格后,将在下一次绘制时自动调用 layout()。如果您在表格初始化后立即需要位置 - 我认为您需要调用 layout() 方法。

布局()说明:

Computes and caches any information needed for drawing and, if this actor has children, positions and sizes each child, calls invalidate() any each child whose width or height has changed, and calls validate() on each child. This method should almost never be called directly, instead validate() should be used. Overrides: layout() in WidgetGroup



验证()说明:

Ensures the actor has been laid out. Calls layout() if invalidate() has been called since the last time validate() was called, or if the actor otherwise needs to be laid out. This method is usually called in Actor.draw(Batch, float) before drawing is performed. Specified by: validate() in Layout

关于LIBGDX-获取 Actor 在 table 内的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35977319/

27 4 0