最終更新日 2024-09-25
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; } } }