Game Development Reference
In-Depth Information
public bool Looping { get; set; }
public bool Finished { get; set; }
public AnimatedSprite()
{
Looping ¼ false;
Finished ¼ false;
Speed ¼ 0.03; // 30 fps-ish
_currentFrameTime ¼ Speed;
}
public System.Drawing.Point GetIndexFromFrame(int frame)
{
System.Drawing.Point point ¼ new System.Drawing.Point();
point.Y ¼ frame / _framesX;
point.X ¼ frame - (point.Y * _framesY);
return point;
}
private void UpdateUVs()
{
System.Drawing.Point index ¼ GetIndexFromFrame(_currentFrame);
float frameWidth ¼ 1.0f / (float)_framesX;
float frameHeight ¼ 1.0f / (float)_framesY;
SetUVs(new Point(index.X * frameWidth, index.Y * frameHeight),
new Point((index.X þ 1) * frameWidth, (index.Y þ 1) * frameHeight));
}
public void SetAnimation(int framesX, int framesY)
{
_framesX ¼ framesX;
_framesY ¼ framesY;
UpdateUVs();
}
private int GetFrameCount()
{
return _framesX * _framesY;
}
public void AdvanceFrame()
{
Search WWH ::




Custom Search