Почти в каждой игре клавиатура используется для ввода.Я искал 2 дня на эту тему и нашел довольно много об этом.Клавиатура имеет много недостатков, но основные проблемы, которые я обнаружил, - это разные раскладки. Во-вторых, если вы одновременно нажимаете 3 клавиши, это может привести к повреждению (ошибка строки-столбца).Если вы не знаете, о чем я говорю, клавиатура выполнена в виде сетки, и она проверяет, какие строки и столбцы соединились.Но если вы нажмете E, D (строка 1,2 столбца 3) и R (строка 1, столбец 4), клавиатура может показать даже F, потому что она обнаружила, что она нажата (строка 2, столбец 4 оба нажаты).
Так что я думаю, что мы ничего не можем поделать с этой секундой, но если у кого-то появится идея, как решить ее лучше, чем использовать ключи, которые не образуют L, я был бы рад:)
Но моя главная проблема - это разные раскладки клавиатуры, что очень больно.Я словацкий, так что словацкая раскладка чисел выглядит так: + ľščťžýáíé и со смещением 1234567890, мы также получили QWERTZ, но вы можете использовать QWERTY.Вы все знаете, как выглядит английский, но точно: 1234567890 и shift! @ # $% ^ & * ()
Большую часть времени я использую английский, потому что привык к нему при программировании.Во всяком случае, есть разные люди, использующие разные макеты.Когда вы создаете игру, которая зависит от того, какая клавиша нажата, например, от старого доброго паттерна WASD, вы не можете использовать его на французском языке, который представляет собой макет AZERTY.Это было бы странно.То же, что использование чисел для выбора оружия в боевике.Как вы можете видеть, словацу придется нажать shift, чтобы заставить его работать.
Я также использую OpeGL.Существует проблема, когда вы отображаете, какие клавиши нажаты.Например, широко используемое решение для составления карты из 256 бул для каждого персонажа, страдающего сдвигом.Вы нажимаете, SHIFT и отпускаете, у вас есть: вниз, вверх.Поэтому я подумал о том, чтобы связать вместе несколько ключей, таких как A и a, 1 и!, Но потом я понял, что просто поменяю раскладку, и все не так.
Так, каково решение для этого?Я думаю, что есть кто-то, кто занимается игровой индустрией или создал какую-то игру и должен был это решить.Единственное решение, которое приходит мне в голову, - это заставить английский макет для пользовательского интерфейса (и выбрать макет для чата).
После следующего поиска я нашел то, что мне нужно, но мне нужен кроссплатформенный: коды виртуальных клавиш
И обнаружен следующий поиск Ключ SDL
Результат: Никогда не начинать сGLUT, если вы собираетесь делать игры, используйте SFML или SDL
Спасибо всем за помощь, было больше проблем в этом, так что идея связывания / сопоставления ключей, SDL и т. Д.каждый помог мне много.