7

通常のコンピューターのキーボードは、特定のキーまでのユーザーの入力のみを同時に受け入れる場合があります。最大3〜4回のキー押下を同時に受け入れることができるロジクールキーボードを入手しました。このキーボードで4つ以上のキーを押すと、コンピューターはそれ以上の入力を受け入れません。また、キーボードの特定の領域にも依存します。一部の場所では(矢印キーのように)より多くのキーを押すことができますが、一部の場所では1〜2個のキーしか押すことができません。これもキーボードごとに異なります。一部の古いキーボードは、最大1〜2個のキーしか受け入れません。

これは通常の事務作業では問題ありませんが、ゲームに関しては問題ありません。たとえば、ジャンプ、攻撃、方向制御を同時に行う必要があるプラットフォームゲームを想像してみてください。これは、いくつかのキーを押すことを意味し、一部のキーボードはそのような同時入力を受け入れることができません。しかし、私はこれをいくつかのゲームで試しましたが、可能なキーボード入力の量も異なるようです。したがって、2つの問題があります。

  1. キーボードには、同時入力の量が異なります。
  2. 一部のゲームは、他のゲームよりも多くのキーボード入力を受け入れることができます。

最初は、これはハードウェアのみの問題だと思っていましたが、なぜ一部のプログラムの動作が異なるのでしょうか。一部のプログラムが他のプログラムよりも多くのキーボード入力を受け入れることができるのはなぜですか?では、より多くのキーボード入力を受け入れるようにプログラムを作成するにはどうすればよいでしょうか。

4

3 に答える 3

9

他のフォーラムからの引用は完全に間違っています...

キーボードは常にマトリックスを使用し、キー メンブレン上で 8x8 配置/マイクロスイッチは 64 キーをカバーします。共通の行に電源を送り、電源が接続されている列 (存在する場合) を一度に 1 つずつピックアップします。スキャンは非常に高速です。コントローラ チップは、一度に必要な数のキー (すべてを含む) を簡単に決定できますが、パフォーマンスに影響を与えることはありません (すべてのキーを上下にポーリングする必要があります)。

次に、その情報はキーボードによってシリアル化され、どのイベントが発生したかをホストに通知します (制限要因は、チップ #1 の設計と、バス #2 に配置する必要があるトラフィックの量です)。これらは、ドライバーによって適切な OS イベントに変換されます (制限要因 #3)。その後、これらのイベントはアプリケーションによって処理されますが、追跡するキーの数には独自の制限がある場合があります (#4)。

多くのことが起こっていますが、60 年代頃からキー + アースごとに 1 本のワイヤを使用していません。マトリックスが十分に高速にスキャンできないと思われる場合は、LCD/LED 画面を見てください。これは、同じマトリックスが逆に起こっていることを示しています。

于 2011-02-15T11:00:41.533 に答える
6

これを修正したい場合は、より高価なキーボードを購入する必要があります.

GlovePieと呼ばれるプログラムを使用すると、さまざまなソースからのプログラム可能な入力が可能になり、この問題を解決できます。GlovePieのダウンロードページはこちら~

たとえば、私は RPG ゲームを開発していますが、私のラップトップのキーボードは Run + Up + Left (run northeast) の組み合わせを検出できません。ただし、USB Logitech コントローラーを接続し、GlovePie を使用して正確なキーボード キー (Up、Left、および B [実行]) をコントローラーのボタンにマップすると、問題なく北東方向に実行するコマンドを実行できます。

あなたの質問に関しては、キーボード入力に対するプログラムの反応が異なる理由は正確にはわかりませんが、入力を検出する方法に問題がある可能性があります。たとえば、Java ベースのゲームは DirectInput (入力/出力デバイスから送信された署名) を検出する場合がありますが、エミュレーター (PC 用の SNES エミュレーター ZSNES など) は、使用されている「上」キーのインスタンスのみを検出する場合があります。別の入力エミュレーション プログラムである AutoHotkey は、Java ベースのゲームを制御できません。これは、ゲームが検出するのと同じ形式の入力を使用しない (Java の DirectInput を使用しない) ためです。

したがって、より多くのキーを取得するには、GlovePie を実行している USB コントローラーを使用します。

別のフォーラムからの引用: 「(技術的には)実際には問題ではありません。解決策は非常に単純ですが、キーボードのコストが高くなります。次の単純な問題を考えてみてください: 64 個のキーがあります。可能なすべての同時キー押下を区別する. 回答: 65, 1 つのコモンと各キーに 1 つ. ただし、キーを 8x8 キーの配列に配置する場合、必要なワイヤは 16 本だけです. 列に 8 本、行に 8 本. これにより、キーボード コントローラー チップのピン数が大幅に削減され、キーボードの製造コストが大幅に削減されました。私が今まで見たキーボードはすべて、この方法で製造されています。」

于 2011-02-08T20:55:00.217 に答える
4

良い記事を見つけましたKeyboard Ghosting Explained! 、この問題について私が知る必要があるすべてを説明しました。また、テスト領域があるので、ラップトップのどのキーの組み合わせがうまく機能しないかを見つけることができました.

于 2014-09-25T21:09:39.517 に答える