gpt4 book ai didi

java - Libgdx 不会从舞台上删除 Actor

转载 作者:行者123 更新时间:2023-12-02 11:46:28 25 4
gpt4 key购买 nike

我的 libgdx 有问题。我正在开发程序,该程序有盒子的输入,然后您可以选择算法将它们分类到卡车中。

enter image description here

我在移除盒子时遇到问题。在我使用此代码后,它应该删除所有 Actor ,即纹理(框)。

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

分类算法运行良好,所有箱子都在卡车上,但它不会删除一些旧箱子。 enter image description here

然后我尝试通过actor.getName()删除它们。相同的结果。还有创建 actor 的代码:

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());它有效。这在 second answer 中说过。

并且不要使用if(actor.getClass() == Textures.class)比较类不是简单的操作,您应该使用 actor.setName()actor.getName()

关于java - Libgdx 不会从舞台上删除 Actor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48168168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com