You should put the if statement in the act method at the end of it. (if (getX() > ...).
Then the error should no longer occour.
if(getX()>790)
{
getWorld().removeObject(this);
return;
}setLocation(getX() + speed, getY());
kollisionDetection();
hitAlien1();
hitAlien2();
if(getX()>790)
{
getWorld().removeObject(this);
return;
}public void hitAlien()
{
Alien1 enemy = (Alien1) getOneObjectAtOffset(0, 0, Alien1.class);
Alien2 enemy2 = (Alien2) getOneObjectAtOffset(0, 0, Alien2.class);
if (enemy != null) {
enemy.setHealth(-1);
getWorld().removeObject(this);
}
else if (enemy2 !=null) {
enemy2.setHealth2(-1);
getWorld().removeObject(this);
}
}
} public void act()
{
setLocation(getX() + speed, getY());
if (getX()>790 ||
kollisionDetection() ||
hitAlien1() ||
hitAlien2())
getWorld().removeObject(this);
}
public boolean kollisionDetection()
{
Actor bullet = getOneIntersectingObject(Laser.class);
if (bullet != null) {
getWorld().removeObject(bullet);
return true;
}
return false;
}
public boolean hitAlien1()
{
Alien1 enemy = (Alien1) getOneObjectAtOffset(0, 0, Alien1.class);
if (enemy != null) {
enemy.setHealth(-1);
return true;
}
return false;
}
public boolean hitAlien2()
{
Alien2 enemy2 = (Alien2) getOneObjectAtOffset(0, 0, Alien2.class);
if (enemy2 !=null) {
enemy2.setHealth2(-1);
return true;
}
return false;
}