diff options
-rw-r--r-- | KeyboardController.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/KeyboardController.cpp b/KeyboardController.cpp index 2273008..18b548b 100644 --- a/KeyboardController.cpp +++ b/KeyboardController.cpp @@ -26,7 +26,7 @@ KeyboardController::direction() y_axis = check_axis(KEY_UP, KEY_DOWN, y_axis); if (x_axis != 0 && y_axis != 0) return {x_axis * DIAGONAL, y_axis * DIAGONAL}; - return {x_axis, y_axis}; + return {static_cast<float>(x_axis), static_cast<float>(y_axis)}; } @@ -34,10 +34,18 @@ int check_axis(const int negative_key, const int positive_key, const int last) { int next = last; - if (last == 1 && IsKeyReleased(positive_key)) - next = 0; - else if (last == -1 && IsKeyReleased(negative_key)) - next = 0; + if (last == 1 && IsKeyReleased(positive_key)) { + if (IsKeyDown(negative_key)) + next = -1; + else + next = 0; + } + else if (last == -1 && IsKeyReleased(negative_key)) { + if (IsKeyDown(positive_key)) + next = 1; + else + next = 0; + } if (IsKeyPressed(positive_key)) next = 1; else if (IsKeyPressed(negative_key)) |