27 lines
541 B
C#
27 lines
541 B
C#
|
using System;
|
|||
|
|
|||
|
namespace Jumpy {
|
|||
|
class FpsCounter {
|
|||
|
private double fps = 0;
|
|||
|
private int[] frameTimes = new int[60];
|
|||
|
private int idx = 0;
|
|||
|
|
|||
|
public double Fps {
|
|||
|
get => 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++;
|
|||
|
if (idx == frameTimes.Length) {
|
|||
|
idx = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|