簡體   English   中英

Libgdx不會從舞台上移除演員

[英]Libgdx dont remove actors from Stage

我有libgdx問題。 我正在研究程序,輸入框,然后可以選擇algorhytm將其分類為卡車。

在此處輸入圖片說明

我在removig box上遇到問題。 使用此代碼后,應刪除所有actor,即Textures(boxes)。

for(Actor actor : stage.getActors()){
        if(actor.getClass() == Textures.class){
            actor.remove();
        }
    }

排序算法運行良好,所有箱子都在卡車上,但它不會刪除一些舊箱子。 在此處輸入圖片說明

然后我嘗試使用actor.getName()刪除它們。 結果相同。 還有一些代碼創建者:

for(Actor actor : stage.getActors()){
        if(actor.getName()!=null){
            if(actor.getName().equals("shape")){
                actor.remove();
            }
        }
    }

    //create actors
    for (ShapeMeasurments sh:shapes) {
        Textures textures = new Textures((sh.getX()*1.45f+30),sh.getY()*1.45f,sh.getWidth()*1.45f,
                sh.getHeight()*1.45f,sh.getMaterial());
        textures.setName("shape");
        stage.addActor(textures);
    }

我發現了一個問題。 actor.remove()是foreach循環中的問題。 在foreach循環中刪除參與者可能會導致問題。 所以然后我使用actor.addAction(Actions.removeActor()); 而且有效。 那是第二答案

並且不要使用if(actor.getClass() == Textures.class)比較類並非無關緊要的操作,您應該使用actor.setName()actor.getName()

暫無
暫無

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

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