SCNKEY
複数同時キー入力が必要なゲームには不向きです。これはステートレスで、現在押されている「その」キーを返すだけです。つまり、2 つ押された場合は 1 つだけが表示され、公式にはどちらが押されているかは保証されません。SCNKEY
あなたができる最善のことは、他の何かが押されているか、何も押されていないことが報告されるまで、キーがまだ押されていると見なすことです.
あなたのプログラムが、押された「その」キーだけが存在するという正統性に適合しない場合は、自分でハードウェアを叩かなければなりません。Codebase64では、いくつかのサンプル コードを提供しています。私の要約バージョンは次のとおりです(CIAを正しくセットアップしましたが、すでに適切に構成されている可能性があります):
- 同時にスキャンする行ごとに 0 を含むバイトを DC00 に書き込みます。
- DC01 から 1 バイトを読み取り、上位 4 ビットをチェックして、選択した行のどのキーが押されたかを調べます。
一般的なルーチンでは、シャドーイングを回避するために各行を個別にテストする必要があります — DC00 のビット 3 と 4 に 0 を格納することにより、行 4 と 5 を同時に読み取るように要求し、返された結果の最上位ビットがクリアであったとします。 v、n、または両方が押されたかどうかはわかりませんが、少なくともどちらかが押されているだけです。
英語キーボードの行と列の表については、上記と同じリンクの一番下を参照してください。これらは物理的なキー レイアウトの結果であるため、他の言語でもキーボードと同じように異なります。ゲームを作成していて、キーの記号よりもキーのレイアウトに関心がある場合は、言語について心配する必要はありません。