geometry::Vector<float> &Velocity() { return velocity; }
const geometry::Vector<float> &Velocity() const { return velocity; }
- void SetSprite(const graphics::Sprite *s) { sprite = s; }
- graphics::AnimationRunner &Animation() { return animation; }
- const graphics::AnimationRunner &Animation() const { return animation; }
+ void SetAnimation(const graphics::Animation *a);
+ void StartAnimation(app::Application &ctrl) { runner.Start(ctrl); }
+ void StartAnimation(app::State &ctrl) { runner.Start(ctrl); }
+ void StopAnimation() { runner.Stop(); }
+ bool AnimationRunning() const { return runner.Running(); }
void SetOrientation(Orientation);
Orientation GetOrientation() const { return orientation; }
void UpdateVelocity();
private:
- const graphics::Sprite *sprite;
- graphics::AnimationRunner animation;
+ const graphics::Animation *animation;
+ graphics::AnimationRunner runner;
geometry::Vector<float> position;
geometry::Vector<float> velocity;
Orientation orientation;