void カスタム::On_チック(int システム時刻, int 前回差分間隔)

void カスタム::On_チック(int システム時刻, int 前回差分間隔) {
}

引数の補足

  • システム時刻:

    システム時刻がミリ秒で得られる。
  • 前回差分間隔:

    前回「On_チック」メソッドを呼び出してから、今回「On_チック」メソッドを呼び出すまでに何ミリ秒経過したかが渡ってくる。 一般的に言う「デルタ時間」などと呼ばれるもの。

タイミング

  • このイベントハンドラはいわゆるタイマーメソッドであり、1秒間に3~4回ほど呼ばれる。
  • プログラム的には比較的データの値を変更しても大丈夫な「画面描画更新」のタイミングで呼ばれている。

一般的用途

  • 通常は、何か値の変化を監視し、デバッグしたい時に利用するのが良い。
  • このイベントハンドラは危険性の高いメソッドであり、下手なプログラムを記述すると、すぐにフリーズすることとなる。
    特に、「待ち(Wait, Sleep)」が発生する処理をすることはタブーである。

例①

static int 差分間隔総計 = 0;
void カスタム::On_チック(int システム時刻, int 前回差分間隔) {
  /*
  3秒以上経過する度に、自作太郎という名前の武将が居たら、そいつの戦闘熟練度を表示する。
  デバッグ用途。
  */
  差分間隔総計 += 前回差分間隔;

  if ( 差分間隔総計 >= 3000) { // 3秒以上経過した。
    差分間隔総計 = 0; // 蓄積リセット

    int iBushouID = Get_武将番号【配列用】("自作太郎"); // 自作太郎というのが自作武将だ。

    // 居れば…
    if ( 0 <= iBushouID && iBushouID < 最大数::武将情報::配列数 ) {

     // 数値系の値をデバッグ出力する際には、とにかく「(int)」のキャストを付ける癖を付けること。
      デバッグ出力 << (int)p武将情報[iBushouID].戦闘熟練値 << endl;
    }
  }
}