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);
}
}