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