0

アセンブリでゲームを書いていますが、キーが押されたかどうかを確認する必要があります。では、kbhit は Linux でどのように実装されているのでしょうか?

ありがとう。

4

2 に答える 2

1

GoogleはC言語でLinux用のkbhit実装を発表しました:http://cboard.cprogramming.com/c-programming/63166-kbhit-linux.html

これをそのままコンパイルしてアセンブリコードから呼び出すか、本当に必要な場合はアセンブリに変換することができます。

于 2010-10-19T09:14:03.930 に答える
1

キーリリースも必要だと思います。また、コンソールを使用していると仮定します (X の場合、XKeyEvent には十分な情報があります)。

まず、端末 (つまり、コンソール) を非正規モードまたは raw モードにする必要があります。これを行わないと、入力に行区切り文字または EOF があるまで入力が表示されません。前の質問に対する私の回答を参照してください。

次に、キー リリースを取得するには、キーボードを RAW または MEDIUMRAW モードに設定します (これは端末の raw モードとは関係ありません。これは Linux およびコンソール固有のものです。console_ioctl(4) を参照してください)。終了する前に、キーボードを元のモードに戻すことを忘れないでください。

これに関する素晴らしい記事がここにあります

于 2010-10-19T22:04:32.153 に答える