Здравствуйте, друзья обращаюсь к вам со следующим вопросом.
Почти всех играх где используется клавиатура уже стало стандартом управление WSAD или стрелки.
И игрок может одновременно нажимать 1 или 2 кнопки чтоб задать направление движения.
Во многих играх есть косяк при движении по диагонали так как складываются 2 вектора направления.
Обойти это можно задавая кнопками угол движения примерно так:

* используются только WSAD
Представим что у нас есть следующие переменные:
kbW - верх
kbS - низ
kbA - лево
kbD - право
Получаем следующую таблицу:
kbD = 0
kbD + kbS = 45
kbS = 90
kbA + kbS = 135
kbA = 180
kbA + kbW = 225
kbW = 270
kbD + kbW = 315
И вот вопрос: Нельзя ли это преобразование нажатых кнопок в угол поворота оптимизировать/упаковать как либо по элегантнее?
У меня соображалки не хватет может кто из вас сооружал нечто подобное?
З.Ы. Никакой проблемы нет! Лишь спортивный интерес. Я верю что это можно упаковать если не в одну то уж в пару строчек точно.