【发布时间】:2015-08-02 14:35:02
【问题描述】:
当我的敌人到达屏幕底部时我想移除它,如果敌人被子弹击中我想要移除它。错误是: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);
}
}
【问题讨论】: