タグ付けされた質問 「keyboard」

5
キーボード入力システムの取り扱い
注:API制限(SFML)のためにコールバックを行うのではなく、ポーリングする必要があります。「まともな」タイトルがないこともおizeび申し上げます。 ここで2つの質問があると思います。受け取った入力を登録する方法と、それをどうするか。 入力の処理 たとえば、「A」キーが押されたことを登録したという事実と、そこからそれを行う方法について話します。 私は次のようなキーボード全体の配列を見てきました: bool keyboard[256]; //And each input loop check the state of every key on the keyboard しかし、これは非効率的です。たとえば、「A」キーを「左に移動するプレーヤー」に結合するだけでなく、毎秒30〜60回すべてのキーをチェックします。 次に、必要なキーを探すだけの別のシステムを試しました。 std::map< unsigned char, Key> keyMap; //Key stores the keycode, and whether it's been pressed. Then, I declare a load of const unsigned char called 'Quit' or 'PlayerLeft'. input->BindKey(Keys::PlayerLeft, …

2
キーを押し始めたときの遅延を取り除く
私は単純なゲームを作成しています。私が遭遇した問題の1つは、キーを押し続けているときの迷惑な遅延です。 つまり、基本的に、たとえば(非常に長い時間)を押すUpと、オブジェクトは1ユニット上に移動し、移動せず(約1秒間)、その後1ユニット上に(遅延なく)連続して移動します。 現在、私はこれを使用してオブジェクト(SDL2)を移動します。 while (SDL_PollEvent(&event)) { switch (event.type) { case SDL_KEYDOWN: switch (event.key.keysym.sym) { case SDLK_UP: //Move object 1 unit up break; //Other unrelated things omitted } break; //Omitted other cases } } 私が欲しいのは、オブジェクトをすぐUpに素早く移動できるように、遅延を取り除くことです。これを行う方法はありますか?
11 c++  sdl2  keyboard 

2
XNA / MonoGame用のポータブルバッファーキーボード入力?
予備的な解決策として、私は現在、バッファーされたキーボード入力のためにC#/ XNAゲームプロジェクトでNuclexフレームワークを使用しています。悲しいことに、nuclexはSlimDX.Directinput.dllに依存しているため、私の知る限り、Windows OSでのみ使用できます。しかし、私は他のプラットフォーム(Linux、OSXなど)をターゲットにするためにMonoGameを使用しているため、すべてのプラットフォーム間でバッファキーボード入力を統合するポータブルな方法を探しています。何かありますか?

7
RTSゲームのキーボードショートカット
マルチプレーヤーのRTSゲーム(たとえば、砂丘、エイジオブエンパイア、開拓者、ウォークラフト)があるとします。キーボードから、軍隊を指揮するための特定のコマンド(停止、攻撃、移動)と、一時停止や終了などのより一般的なコマンドがあります。ゲームは多くの言語(18以上)にローカライズされています。 キーボードショートカットを使用する2つの可能な方法を確認できます。 A.ロケールごとに、上記のコマンドの最初の英字(「S」、「A」、「M」、「P」など)を使用します。 B.そのロケールで単語の最初の文字を使用します(たとえば、ロシア語のショートカットは「С」、「А」、「Д」、「П」になります。ドイツ語は「H」、「A」、「S」などになります。 。) 複数のロケールのショートカットを選択するとき、これらの(または独自の)アプローチのどちらが優れていますか? PSもちろん、ショートカットはプレイヤーによってカスタマイズ可能かもしれませんが、いくつかの健全なデフォルトがまだ必要です。

5
キーボードとマウスの入力の処理(Win API)
Windowsでマウスやキーボードをキャッチする方法はいくつかあります。いくつか試してみましたが、それぞれに長所と短所があります。私はあなたに尋ねたいです:どの方法を使用しますか? 私はこれらを試しました: WM_KEYDOWN / WM_KEYUP-主な欠点は、ALT、CONTROL、SHIFTのような左利きのキーと右利きのキーを区別できないことです。 GetKeyboardState-これは最初の方法の問題を解決しますが、新しい方法があります。右ALTキーが押されていることを確認すると、左Ctrlキーが押されていることも確認できます。この動作は、ローカライズされたキーボードレイアウト(チェコ語-CS)を使用している場合にのみ発生します。 WM_INPUT(生の入力)-このメソッドは、左利きのキーと右利きのキーを区別しません(覚えている場合)。マウスの動きに対して、マウス位置のデルタ値がゼロのメッセージが生成されることがあります。

4
さまざまなキーボードレイアウトをどのように処理できますか?
QWERTYレイアウトでWASDコントロールを使用するゲームがあるとします。たとえば、これらのコントロールをDvorakレイアウトで使用しようとするのは理想的ではありません(<A:HQWERTY と同等)。明らかに、QWERTYが使用するのと同じ物理キーを使用したいと思います(,aoeDVORAKで)。 私はいくつかの可能な解決策を考え出しました: ユーザーにQWERTYの使用を強制する 特に国際的なユーザーにとっては明らかに理想的ではありません キーボードレイアウトに基づいてショートカットを変更する(WASD->、aoe) サポートされているレイアウトごとにレイアウトマップを作成するように強制します(自動化可能) WASD以外のショートカットがある場合、ユーザーにとって最も簡単です ユーザーに自分でショートカットを定義させる より柔軟 ショートカットがたくさんあると困る 2番目のオプションと組み合わせて使用​​できます ハードウェアキーコードを使用する キーボード間で一貫していますか? このタイプのものは通常どのように扱われますか?
10 keyboard 

2
GLFWのキーボード入力を別のオブジェクトに転送するにはどうすればよいですか?
GLFW3を使用して別のクラスでキーボードイベントを実行しようとすると問題が発生します。私が抱えている問題は、GLFW3が次のように入力に静的関数を使用することです。 static UI u; ... ... static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) { u.controls(window, key, action); } uまた、静的であり、コントロールはWSADキーの入力を保持します(キーイベントを取得できる唯一の方法)。ここから、キーを押すと、コンソールウィンドウでどのキーが押されたかが表示されます。私が抱えている問題は、押されたキーを使用して別のクラスの変数を操作しようとすることです。 この関数を持つMainMenuという別のクラスupdate().があります。この関数内でUIクラスを使用する方法はありますか?
9 opengl  c++  keyboard  glfw 

3
投票ベースの入力のキーの組み合わせ
したがって、ポーリングに基づく入力システムがあると仮定します void update() { if( Keyboard[ 'A' ] ) // A is down } 3〜8の長さのキーの組み合わせ(ダウン、ダウンフォワード、フォワード、ハドーケンのAなど)を認識できるようにしたいとします。 ポーリングされた入力に、一般的な(簡単に変更可能/プログラム可能な)キーの組み合わせの入力システムをどのように作成するのが最善でしょうか。

1
JavaScript keyDown-イベントアプローチなし
JavaScriptでゲームを作っています。描画とゲームループ用のキャンバスがあります。ゲームループでメソッドreadKeyboardを作成して、押されたキーがあるかどうかを確認します。イベントをキャンバスにアタッチしたくないのは、ゲームのループデザインに適合しないためです。たぶん、このイベントを添付する必要がありますか?最良の解決策は何ですか?

3
C#またはC ++を使用してマウスとキーボードをシミュレートするにはどうすればよいですか?
Kinectの開発を開始したいのですが、最も難しいテーマは、キーボードとマウスの入力を任意のアプリケーションに送信する方法です。前の質問で、このデバイス用に独自のドライバーを開発するようアドバイスを受けましたが、これにはしばらく時間がかかります。 SendMessageをシステム全体の入力に変換できるゲートのようなアプリケーション、またはこの入力を送信するAPIを備えたドライバーアプリケーションを想像します。では、C#やC ++とやり取りできるドライバーやシミュレーターはあるのでしょうか。 小規模版:SendMessage、PostMessage、keybd_eventは、共通のメッセージループを持つWindowsアプリケーションでのみ機能します。したがって、低レベル、カーネル、レベルで機能するドライバーアプリケーションが必要です。

7
キーボードのキーの選択に関する人間工学研究?
次の問題があります。 私のゲームは複数のパワーをサポートしており、必要に応じて使用したり、混合したりすることもできます。現在、キーボードの上部にある番号に割り当てています。 プレイテストに長い時間を費やした後、自分のゲームをプレイするための高度なスキルの開発を終了しました。新しい戦術のいくつかにはパワーの混合が含まれていますが、間違ったボタンを押し続けるか、一時停止してキーボードを確認する必要があることがわかりました。一時停止を解除するか、誤って間違ったボタンを押します(たとえば、5を押してみますが、代わりに6を押します)。 キーバインドを作成したときにすでにこれを期待していましたが、解決方法が見つかりません... どうすれば修正できますか? 編集:ゲームはテンポの速いアクションゲーム、またはアーケードゲームです(アクションであり、ハイスコアを目指している場合を除いて、必ずしもジャンルではありません)。したがって、ランダムキーを使用できません。本当に、プレイヤーがキーを本当に速く押すことを許可する必要があります。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.