allegro wiki (http://wiki.allegro.cc/index.php?title=Allegro_5_Tutorial/Events) では、このコードが表示されます。
bool get_event = al_wait_for_event_until(event_queue, &ev, &timeout);
コードの動作はわかりましたが、なぜイベントや 60 ミリ秒が経過するまで待つ必要があるのでしょうか? どちらかだけではないのはなぜですか?
イベントを待っていた場合、それは永遠になる可能性があります。
この質問は、簡単な質問をすることで答えられます。イベントが発生しない場合はどうなりますか? 起こらない何かを待って、プログラムをそこに置いておきたいですか?
一部のイベントは、多かれ少なかれ発生することが保証されています。それらが起こらないということは、悪いことが起こっていることを意味します。v-sync イベントを取得しないということは、ディスプレイが存在しなくなったことを意味します。か何か。タイマー イベントを取得できないということは、Allegro タイマー システムが壊れている (または誰かがタイマーを非常に長い時間に設定した) ことを意味します。ただし、一部のイベントはまったく発生しない場合があります。
イベントが発生しない場合に備えて、タイムアウトがあります。そうすれば、(戻り値を介して)それを検出し、それについて何かをすることができます。
イベントが来るまで永遠に待つことの何がそんなに悪いのですか?
プログラムはレスポンシブである必要があるためです。おそらく、Allegro Game Programming ライブラリを使用してゲームを作成していると思われます。
なんらかのイベントのために、ゲームを 2 分間停止してよろしいですか? ユーザーが何が起こっているのかわからないように、ディスプレイを画像上で 5 分間フリーズさせたいですか? それとも、「やあ、何かを待っている。ちょっと待って」というダイアログ ボックスをポップアップできるようにしたいですか。そしてアニメーション待機カーソルを表示します。
永遠に待つことは決して良い考えではありません。