2012-02-28 2 views
0

allegro wiki(http://wiki.allegro.cc/index.php?title=Allegro_5_Tutorial/Events)には、このコードが表示されます。アレグロ:なぜイベントを待つか、60ミリ秒が上がるまで?

bool get_event = al_wait_for_event_until(event_queue, &ev, &timeout); 

私はコードが何をしているのですか?しかし、イベントを待つ理由、または60ミリ秒が上がるまではどうですか?どちらか一方だけではありませんか?

+0

チュートリアルでは、タイマーを導入しないことで簡単にしようとしています。タイムアウトは、60fpsでタイマーする代わりに使用されます。画面をドラッグして最小化された場合、ユーザーが無効にする可能性があるので、ウィンドウを描画するためには外に出る必要があります。 – Matthew

答えて

0

質問は簡単な質問をして回答します。イベントが決して来ない場合はどうなりますか?あなたのプログラムは、起こらないことを待ってそこに座りたいですか?

一部のイベントは、発生することが多かれ少なかれ保証されています。起こっていないことは、悪いことが起こっていることを意味します。 v-syncイベントが表示されないと、ディスプレイが存在しなくなります。か何か。タイマーイベントを取得していないということは、Allegroタイマーシステムが壊れている(または誰かが本当に長い時間を設定している)ことを意味します。しかし、いくつかの出来事はまったく起こらないかもしれません。

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

イベントが来るまで永遠に待っているだけで何が悪いですか?

プログラムが応答である必要があるためです。おそらくあなたはゲームを作るためにAllegro ゲームプログラミングライブラリを使用しています。

イベントのため2分間ゲームを止めてもらいたいですか?あなたは何が起こっているのか分からない状態で、あなたのディスプレイを5分間画像に凍結させますか?または、「ねえ、何かを待っています。ちょっとホールドしてください。」というダイアログボックスをポップアップしたいのですか?アニメートされた待機カーソルを表示します。

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

1

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

+0

それ以外は何もしません。イベントが来るまで永遠に待っているだけで何が悪いですか? – user701329

関連する問題