2011-06-17 15 views
3

OcamlのモジュールGraphicsを使用して簡単なゲームを作成し、描画と対話を実行しています。 Graphics.read_key()は、後で使用するためにすべてのキーをキューに入れるという問題を抱えていました。しばらくの間キーを保持すると、多くの「プレス」がメモリに格納されます。リリース後、アクションはまだ実行されます。Ocaml、モジュールグラフィックス - キューイングのキー操作

このキューからエントリを削除する方法はありますか、まったくキューに入れない方法はありますか?

答えて

5

これはおそらく最も美しい解決策ではありませんが、key_pressedを使用できます。 この機能は、キー入力が有効な場合にtrueを返します。 したがって、read_keyでキー入力を読み終えたら、key_pressedがfalseになるまでread_keyを呼び出し、結果を無視してキューをフラッシュすることができます。

(* flush_kp : unit -> unit *) 
let flush_kp() = while key_pressed() do 
         let c = read_key() 
         in() 
        done ;; 

希望します。

+0

これで十分です。thx :) – mechu

関連する問題