FixedTimeCounter.cs 930 B

12345678910111213141516171819202122232425262728293031323334
  1. namespace ET
  2. {
  3. public class FixedTimeCounter: Object
  4. {
  5. private long startTime;
  6. private int startFrame;
  7. public int Interval { get; private set; }
  8. public FixedTimeCounter(long startTime, int startFrame, int interval)
  9. {
  10. this.startTime = startTime;
  11. this.startFrame = startFrame;
  12. this.Interval = interval;
  13. }
  14. public void ChangeInterval(int interval, int frame)
  15. {
  16. this.startTime += (frame - this.startFrame) * this.Interval;
  17. this.startFrame = frame;
  18. this.Interval = interval;
  19. }
  20. public long FrameTime(int frame)
  21. {
  22. return this.startTime + (frame - this.startFrame) * this.Interval;
  23. }
  24. public void Reset(long time, int frame)
  25. {
  26. this.startTime = time;
  27. this.startFrame = frame;
  28. }
  29. }
  30. }