How can I make an object move and turn around another object while the other object moves? I can get the power-up to move and turn in a nice circle, but I don't know how to get it to follow my actor.


1 2 3 | Player player = (Player) getWorld().getObjects(Player. class ).get( 0 ); turnTowards(player.getX(), player.getY()); move( 3 ); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import greenfoot.* public class Core extends Actor { private PowerUp powerUp; private int angle; public Core() { // create image of core } public void act() { // put movement code for core here if (powerUp == null ) return ; if (powerUp.getWorld() == null ) { powerUp = null ; return ; } angle = (angle + 1 )% 360 ; powerUp.setLocation(getX(), getY()); powerUp.setRotation(angle); powerUp.move( 20 ); powerUp.setRotation( 0 ); } public void setPowerUp(Powerup pu) { powerUp = pu; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public void ifCanSeeDP() { if (canSee(DominatorPower. class )) { eat(DominatorPower. class ); timer1 = 500 ; if (powerUp != null && powerUp.getWorld() != null ) return ; powerUp = new DominatorPower1(); getWorld().addObject(powerUp, getX(), getY()); } if (powerUp == null || powerUp.getWorld() == null ) return ; angle = (angle+ 5 )% 360 ; powerUp.setLocation(getX(), getY()); powerUp.setRotation(angle); powerUp.move( 40 ); powerUp.turn( 90 ); timer1--; if (timer1 == 0 ) getWorld().removeObject(powerUp); } |