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

2017/6/8

Move Object around another Object

JeanRabelo75 JeanRabelo75

2017/6/8

#
Hi, I have this Actor in a circle movement. How can I put another class moving in a circle movement aroud this class? Thanks
public class Terra extends Actor
{
   private int angle = 0;
 
   public void act()
   {
    setLocation(getWorld().getWidth()/2, getWorld().getHeight()/2); // set center
    setRotation(angle+1); // set new angle
    angle = getRotation(); // save new angle
    move(100); // move from center along radius to circle
    setRotation(0); // fix rotation
   }
}
Super_Hippo Super_Hippo

2017/6/8

#
This should work:
public class Moon extends Actor
{
    private int angle = 0;
    private Actor terra;
    
    public Moon(Actor t)
    {
        terra = t;
    }
    
    public void act()
    {
        setLocation(terra.getX(), terra.getY());
        setRotation(++angle);
        move(50);
        setRotation(0);
    }
}
When creating, you need to pass the Terra object.
Terra terra = new Terra();
addObject(terra, getWidth()/2, getHeight()/2);
Moon moon = new Moon(terra);
addObject(moon, getWidth()/2+50, getHeight()/2);
JeanRabelo75 JeanRabelo75

2017/6/8

#
Thanks a lot! It Works!
You need to login to post a reply.