summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--KeyboardController.cpp18
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))