Локализация _getch()
Всем привет. Делаю змейку в консоли. Сейчас "локализовывал" её, чтобы работала и с английской, и с русской раскладкой. Заметил интересную особенность функции _getch(); Такой вариант будет работать с русскими символами: switch(char(_getch())), а такой нет: switch(_getch()). Кто знает с чем это связано?
P.S. Также, если знаете, как сделать считывание определенной клавиши независимо от раскладки, будь то хоть японская, китайская или любая другая, дайте, пожалуйста, совет, или ссылку на информацию.
void Input() {
if (_kbhit()) {
switch (char(_getch()))
{
case 'a':
case 'ф':
dir = LEFT;
break;
case 'd':
case 'в':
dir = RIGHT;
break;
case 'w':
case 'ц':
dir = UP;
break;
case 's':
case 'ы':
dir = DOWN;
break;
case 'x':
case 'ч':
gameOver = true;
break;
}
}
}