rubyを使用して、使用されているキーボードレイアウトを調べる
-
03-07-2019 - |
質問
Rubyアプリケーションのユーザーが使用しているキーボードレイアウトを調べるにはどうすればよいですか? 私の目的は、マップ上でプレイヤーを動かすことができるゲームをすることです。 1つ下に移動して1つ左に移動するには、「Y」を押します。ドイツ語のキーボードで。アメリカのキーボードでは、「Z」を押します。 WindowsとMac向けにゲームを最適化したため、両方のプラットフォーム用のソリューションが必要です(コマンド/シフト/コントロールキーは使用しません)。
解決
Alexanderが推奨したように、ユーザーが自分でキーを定義できるようにします。
ただし、レイアウトを本当に認識したい場合は、特定のレイアウト、特定のレイアウトで特定の位置でキーを押すように常にユーザーに求めることができます。
"リターンキーの左にある2番目のキーを押します。リターンキーの高さが2行の場合、下の1つを押します"
[ä
]
を押します
"スカンジナビア語のキーボードを持っているように見えます"
ただし、それは恐ろしいことであり、ゲームのコンテキストでは、カスタムキーマッピング方法をお勧めします
他のヒント
Windowsの場合、おそらく Windowsを使用する必要があります。 API GetKeyboardLayout()(Rubyがそのラッパーを提供していない限り)。
MSDN Webサイトには、Windows用の有用なI18nリソースがたくさんあります。 。
それを検出するための優れたポータブルな方法がない場合は、単純に設定として自分で設定できるようにする方が簡単かもしれません。
ユーザーが自分でキーを定義できるようにする方がはるかに簡単で自然だと思います。