>>941
isTimeoutが最初に呼ばれる時は初期値0と比較して、カウントダウンではなく
カウントアップで経過確認してるのでまぁいいかなと。
疑似コード的に書くと以下のような感じ。

void main() {
 TimeoutChecker keyChecker(100), fpsChecker(1000), ...;

 while (true) {
  time = timeGetTime();
  ...;
  if (keyChecker.isTimeout(time)) ...;
  if (fpsChecker.isTimeout(time)) ...;
  ...;
 }
}

とまぁ、FPSみたいにせいぜい1秒単位で処理すればいいものや、
パフォーマンスが悪いときに動的に一部の処理の実行頻度を落としたり、
ということをやろうとするとクラス化してまとめておいた方が
管理しやすいよね、というだけの話です。