#region File Description
//-----------------------------------------------------------------------------
// Animation.cs
//
// Microsoft XNA Community Game Platform
// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
#endregion
using System;
using Microsoft.Xna.Framework.Graphics;
namespace Platformer
{
///
/// Represents an animated texture.
///
///
/// Currently, this class assumes that each frame of animation is
/// as wide as each animation is tall. The number of frames in the
/// animation are inferred from this.
///
class Animation
{
///
/// All frames in the animation arranged horizontally.
///
public Texture2D Texture
{
get { return texture; }
}
Texture2D texture;
///
/// Duration of time to show each frame.
///
public float FrameTime
{
get { return frameTime; }
}
float frameTime;
///
/// When the end of the animation is reached, should it
/// continue playing from the beginning?
///
public bool IsLooping
{
get { return isLooping; }
}
bool isLooping;
///
/// Gets the number of frames in the animation.
///
public int FrameCount
{
get { return Texture.Width / FrameWidth; }
}
///
/// Gets the width of a frame in the animation.
///
public int FrameWidth
{
// Assume square frames.
get { return Texture.Height; }
}
///
/// Gets the height of a frame in the animation.
///
public int FrameHeight
{
get { return Texture.Height; }
}
///
/// Constructors a new animation.
///
public Animation(Texture2D texture, float frameTime, bool isLooping)
{
this.texture = texture;
this.frameTime = frameTime;
this.isLooping = isLooping;
}
}
}