簡體   English   中英

用填充物獲得演員的位置

[英]Getting actor position with its padding

我想獲取Actor在InputListener中的位置。 問題是,但是我得到的正確位置不包括演員墊。 我怎么能得到這個?

    // MenuBar class extends Table
    defualts().pad(5.0f);
    Label label = new Label(name, labelStyle);
    add(label);
    menuGroup.setup(label)

    // MenuGroup class
    public void setup(Actor actor) {
        actor.addListener(changeListener)
    }

    private void setListeners() {
        changeListener = new ChangeListener() {
            private Vector2 pos = new Vector2();
            public void changed(ChangeEvent event, Actor actor) {
            pos.set(0, 0);
            pos = actor.localToStageCoordinates(pos);
            mainMenu.setPosition(pos.x, pos.y);
            show();
        }
    };

如果您確定actor在Table內 (並且當您的類擴展該表時應該在這里),則可以只轉換其父級,然后獲取pad值。 例如,要獲得左墊的值,您只需使用:

    float padLeft = ( (Table) actor.getParent() ).getPadLeft();

然后,您可以獲取所有墊板的周圍(上,左,下,右)並用其修改位置,這將使您包括墊板的位置。

請記住,位置是根據 actor 左下角位置計算的,因此您只需要左墊和底墊值即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM