Узнайте, какая раскладка клавиатуры используется, используя ruby - PullRequest
1 голос
/ 15 октября 2008

Как узнать, какую раскладку клавиатуры использует пользователь моего приложения ruby? Моя цель - создать игру, в которой вы можете перемещать игрока по карте. Чтобы сделать один шаг вниз и один шаг влево, вы нажимаете «Y» на немецкой клавиатуре. На американской клавиатуре вы должны нажать «Z». Мы оптимизировали игру для Windows и Mac, поэтому я хотел бы найти решение для обеих платформ (и мы не используем никаких клавиш / shift / control-keys).

Ответы [ 3 ]

2 голосов
/ 15 октября 2008

Для Windows вам, вероятно, придется использовать Windows API GetKeyboardLayout () , если только Ruby не предоставляет оболочку для этого.

На веб-сайте MSDN имеется множество полезных ресурсов I18n для Windows .

Может быть, проще просто позволить им самим настроить его, если у вас нет хорошего портативного способа его обнаружения.

1 голос
/ 16 октября 2008

Я думаю, что пользователям будет намного проще и естественно определять ключи самостоятельно.

0 голосов
/ 16 октября 2008

В соответствии с рекомендациями Александра, позвольте пользователю самим определять ключи.

Но, если вы действительно хотите распознать макет, вы всегда можете попросить пользователя нажать клавиши в определенных положениях, в частности в некоторых макетах.

"Нажмите вторую клавишу слева от клавиши возврата. Если ваша клавиша возврата имеет высоту в два ряда, нажмите нижнюю"
[нажимает ä]
«Похоже, у вас есть скандинавская клавиатура»

Это, однако, ужасный клочок, и, в контексте игры, рекомендовал бы пользовательский метод сопоставления клавиш

...