using System; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; namespace V3.Objects.Sprite { /// /// /// public interface ISpriteCreature { /// /// Loads the texture file and prepares animations. /// /// Content manager used. void Load(ContentManager contentManager); /// /// Draws the sprite on the screen. /// /// Sprite batch used for drawing. /// Position on the screen in pixels where the sprite should stand. /// What moveset will be used? (Moving, Attacking...) /// Where does the sprite face to? void Draw(SpriteBatch spriteBatch, Vector2 position, MovementState movementState, MovementDirection movementDirection); /// /// Draws a static image of the sprite. No animations. /// /// Sprite batch used for drawing. /// Position of the sprite in pixels. (Where are the feet of the sprite placed. /// What moveset will be used? (Moving, Attacking...) /// Where does the sprite face to? void DrawStatic(SpriteBatch spriteBatch, Point position, MovementState movementState, MovementDirection movementDirection); /// /// Change the sprite to show an animation. /// /// Elapsed game time is used for calculating FPS. void PlayAnimation(GameTime gameTime); /// /// Plays the specified animation fully, but only once. /// /// For which movement state the animation should be played. /// How long (or how slow) should the animation be? void PlayOnce(MovementState animation, TimeSpan duration); } }