いつも楽しく使わせて頂いています。
迷路を自動で探索するゲームを作っているのですが、迷路の描画や探索の処理が多いためか、
ループ中にキー入力を受け付けないタイミングが発生してしまいます。
具体的には、下記のプログラムの「1区画だけ迷路を描く〜ゴール処理」のタイミングでキー入力を行っても一時停止してくれません。
そのため、裏でキー入力を監視しリアルタイムにフラグを変更する様な処理を作りたいのですが、どの様に記述したら良いのでしょうか。
もしくは、ループ中にリアルタイムにキー状態を取得する方法はあるのでしょうか?
//----------------------------------------------------------------------
// Escキーが押されたら強制終了
while (input[KEY_INPUT_ESCAPE] != 1) {
// キーの押下状態を取得
GetHitKeyStateAll(input);
// スペースキーが押されたら一時停止フラグをON
if (input[KEY_INPUT_SPACE] == 1) {
WaitTimer(150);
Pause_flg = 1;
}
// 一時停止フラグがONであれば一時停止処理
if (Pause_flg == 1) {
Pause_flg = 0;
while (1) {
// キーの押下状態を取得
GetHitKeyStateAll(input);
// 一時停止中にスペースキーが押されたら一時停止を解除
// UPキーが押されたら迷路を1歩前進(1歩だけ進んで再度一時停止処理に入る)
if (input[KEY_INPUT_SPACE] == 1) break;
else if (input[KEY_INPUT_UP] == 1) { Pause_flg = 1; break; }
//ウィンドウメッセージを処理
if (ProcessMessage() == -1) break;
}
}
// 画面をクリア
ClearDrawScreen();
// 1区画迷路を描く
draw_maze();
// 1区画迷路を探索する
search();
// ゴール処理
GOAL();
//ウィンドウメッセージを処理
if (ProcessMessage() == -1) break;
}
//----------------------------------------------------------------------