using System; namespace SemiColinGames { public class FpsCounter { private readonly int[] frameTimes = new int[60]; private double fps = 0; private int idx = 0; public int Fps { get => (int) Math.Ceiling(fps); } public void Update() { var now = Environment.TickCount; // ms if (frameTimes[idx] != 0) { var timeElapsed = now - frameTimes[idx]; fps = 1000.0 * frameTimes.Length / timeElapsed; } frameTimes[idx] = now; idx = (idx + 1) % frameTimes.Length; } } }