16要素のベクトルの配列用意してそこから引くってのはどうだろ
斜め移動の時の正規化の手間が一度ですむ
int index = 上ボタン | (下ボタン << 1) | (左ボタン << 2) | (右ボタン << 3);
const VECTOR &amp;v = ARROW_VECTORS[index];