Files
SlaveMatrix-SDL/2DGAMELIB/_2DGAMELIB/FPS.cs
2025-05-05 19:40:03 -07:00

39 lines
675 B
C#

using System;
using System.Diagnostics;
namespace _2DGAMELIB;
public class FPS
{
public Stopwatch sw = new Stopwatch();
private long last_frame;
public double Value;
private int count;
private double ticks_per_frame;
public FPS(double FPS)
{
Value = FPS;
ticks_per_frame = (double)Stopwatch.Frequency / FPS;
sw.Start();
last_frame = sw.ElapsedTicks;
}
public void FPSFixed(Action Action)
{
long current_time = sw.ElapsedTicks;
if (current_time - last_frame >= ticks_per_frame)
{
Action();
Value = (9 * Value + ((double)Stopwatch.Frequency / (sw.ElapsedTicks - last_frame)))/10;
last_frame = current_time;
}
}
}