/// <summary>    
/// 计算FPS类
/// </summary>
public static class FpsCounter
{
private static int frames;
private static int milliseconds;
private static int interval = 1000;
private static float fps;

/// <summary>
/// 得到当前的FPS
/// </summary>
public static float Fps
{
get { return fps; }
}

/// <summary>
/// 设置/获取用于计算FPS的时间间隔(毫秒)
/// 默认值1000
/// </summary>
public static int Interval
{
get { return interval; }
set { interval = value; }
}

/// <summary>
/// 在每一帧调用
/// </summary>
/// <param name="time">自从上一帧经过的时间</param>
/// <returns>如果经过的时间大于设置的间隔时间就返回true</returns>
public static bool NewFrame(GameTime time)
{
frames++;
milliseconds += time.ElapsedRealTime.Milliseconds;
if (milliseconds >= interval)
{
fps = frames * 1000.0f / (float)milliseconds;
frames = 0;
milliseconds -= interval;
return true;
}
return false;
}
}