繁体   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