This site requires JavaScript, please enable it in your browser!
Greenfoot back
NewbJava
NewbJava wrote ...

2020/11/25

actor not in world

NewbJava NewbJava

2020/11/25

#
public class Rocket extends Actor
{
    private int xdistance=0,ydistance=0; 
    boolean fire = true; 
    private boolean toRemove=false;
     
    public void addedToWorld(World MyWorld) 
    { 
       xdistance=getX(); 
       ydistance=getY(); 
    } 
     
    public void move() 
    { 
      double rx=xdistance-getX(); 
      double ry=ydistance-getY(); 
      double r=Math.sqrt(rx*rx+ry*ry); 
      int b=5; 
      int posx=0,posy=0;
      if(r>b)  
      {  
        posx=(int)(getX()+b*rx/r);  
        posy=(int)(getY()+b*ry/r);
        } else{  
            posx=xdistance; 
            posy=ydistance; 
        } 
        setLocation(posx,posy); 
    } 
    
   
    public void act() 
    {
      if(Greenfoot.mouseMoved(null))  
      { 
          MouseInfo mouse=Greenfoot.getMouseInfo(); 
          xdistance=mouse.getX(); 
          ydistance=mouse.getY(); 
        } 
       move(); 
       fireLasars(); 
       gameOver(); 
        
    }
    public void fireLasars()  
    {  
        if(Greenfoot.isKeyDown("a") && fire == true ) 
        { 
            getWorld().addObject(new Lasars(),getX() - 30,getY());  
            fire = false; 
        } 
        else if (!Greenfoot.isKeyDown("a")) 
        { 
            fire = true; 
        }
}   
public void gameOver() 
{ 
   Actor meteor = getOneIntersectingObject(Meteors.class); 
        if(meteor != null) 
        { 
        getWorld().removeObject(this);  
        Greenfoot.stop(); 
         }   
        if(this.isAtEdge() == true)
        {   
            World world;
            world = getWorld();
            getWorld().removeObject(this);  
            Greenfoot.stop(); 
        }
         
         
 }   
NewbJava NewbJava

2020/11/25

#
Here are the error messages java.lang.IllegalStateException: Actor not in world. An attempt was made to use the actor's location while it is not in the world. Either it has not yet been inserted, or it has been removed. at Rocket.gameOver(Rocket.java:67) at Rocket.act(Rocket.java:44)
danpost danpost

2020/11/25

#
Either insert:
return;
at line 64; or use "else if" on line 65.
You need to login to post a reply.