package vooga.scroller.sprites.animation.movement;
import java.awt.Dimension;
import java.awt.Graphics2D;
import util.Vector;
import vooga.scroller.sprites.Sprite;
import vooga.scroller.sprites.state.SpriteState;
import vooga.scroller.util.ISpriteView;
public class SpriteMovement extends SpriteState {
private static final int PRIORITY = 0;
private ISpriteView myView;
private double myDirection;
private double mySpeed;
public SpriteMovement(ISpriteView view, double direction, double speed){
myView = view;
myDirection = direction;
mySpeed = speed;
}
@Override
public void update (Sprite sprite, double elapsedTime, Dimension bounds) {
// does nothing special
}
@Override
public void paint (Sprite sprite, Graphics2D pen) {
myView.paint(pen, sprite.getCenter(), sprite.getSize());
}
@Override
public int getPaintPriority () {
return PRIORITY;
}
@Override
public void activate (Sprite sprite) {
Vector component = sprite.getVelocity().getComponentVector(myDirection);
component.negate();
sprite.addVector(component);
sprite.addVector(new Vector(myDirection, mySpeed));
}
@Override
public void deactivate (Sprite sprite) {
Vector component = sprite.getVelocity().getComponentVector(myDirection);
component.negate();
sprite.addVector(component);
}
}