0

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 ミリ秒が経過するまで待つ必要があるのでしょうか? どちらかだけではないのはなぜですか?

4

2 に答える 2

1

イベントを待っていた場合、それは永遠になる可能性があります。

于 2012-02-28T23:47:19.947 に答える
0

この質問は、簡単な質問をすることで答えられます。イベントが発生しない場合はどうなりますか? 起こらない何かを待って、プログラムをそこに置いておきたいですか?

一部のイベントは、多かれ少なかれ発生することが保証されています。それらが起こらないということは、悪いことが起こっていることを意味します。v-sync イベントを取得しないということは、ディスプレイが存在しなくなったことを意味します。か何か。タイマー イベントを取得できないということは、Allegro タイマー システムが壊れている (または誰かがタイマーを非常に長い時間に設定した) ことを意味します。ただし、一部のイベントはまったく発生しない場合があります。

イベントが発生しない場合に備えて、タイムアウトがあります。そうすれば、(戻り値を介して)それを検出し、それについて何かをすることができます。

イベントが来るまで永遠に待つことの何がそんなに悪いのですか?

プログラムはレスポンシブである必要があるためです。おそらく、Allegro Game Programming ライブラリを使用してゲームを作成していると思われます。

なんらかのイベントのために、ゲームを 2 分間停止してよろしいですか? ユーザーが何が起こっているのかわからないように、ディスプレイを画像上で 5 分間フリーズさせたいですか? それとも、「やあ、何かを待っている。ちょっと待って」というダイアログ ボックスをポップアップできるようにしたいですか。そしてアニメーション待機カーソルを表示します。

永遠に待つことは決して良い考えではありません。

于 2012-02-29T00:00:01.100 に答える