当我的敌人到达屏幕底部时,我想移除它,如果敌人被子弹击中,我想移除它。错误是:java.lang.IllegalStateException:Actor 不在世界中。尝试使用不在世界上的演员的位置。它要么尚未插入,要么已被删除。
我认为问题是因为有两次调用 removeObject 或 getOneIntersectingObject 方法导致错误。我该如何解决?
这是导致错误的代码
public class Enemy extends Actor
{
public void act()
{
setLocation(getX(), getY() + 3);
if (getY() > getWorld().getHeight() + 30 )
getWorld().removeObject(this);
Actor fire = getOneIntersectingObject(Fire.class);
if(fire != null)
getWorld().removeObject(this);
}
}