Skip to content
Snippets Groups Projects
Commit e0861bbf authored by Vanessa Karolek's avatar Vanessa Karolek
Browse files

[#60] change gamepadCallback

parent b325dd76
No related branches found
No related tags found
1 merge request!65Resolve "Kamera - Steuerung mittels Controller"
Pipeline #25861 passed
...@@ -140,10 +140,12 @@ namespace vkcv::camera { ...@@ -140,10 +140,12 @@ namespace vkcv::camera {
// handle rotations // handle rotations
double stickRightX = static_cast<double>(gamepadState.axes[GLFW_GAMEPAD_AXIS_RIGHT_X]); double stickRightX = static_cast<double>(gamepadState.axes[GLFW_GAMEPAD_AXIS_RIGHT_X]);
double stickRightY = static_cast<double>(gamepadState.axes[GLFW_GAMEPAD_AXIS_RIGHT_Y]); double stickRightY = static_cast<double>(gamepadState.axes[GLFW_GAMEPAD_AXIS_RIGHT_Y]);
if ((std::less<double>{}(stickRightX, -threshold) || std::greater<double>{}(stickRightX, threshold))
&& (std::less<double>{}(stickRightY, -threshold) || std::greater<double>{}(stickRightY, threshold))) { double rightXVal = glm::clamp(std::abs(stickRightX) - threshold, 0.0, 1.0)
panView(stickRightX * sensitivity, stickRightY * sensitivity, camera); * copysign(1.0, stickRightX) * sensitivity;
} double rightYVal = glm::clamp(std::abs(stickRightY) - threshold, 0.0, 1.0)
* copysign(1.0, stickRightY) * sensitivity;
panView(rightXVal, rightYVal, camera);
// handle zooming // handle zooming
double zoom = static_cast<double>((gamepadState.axes[GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER] double zoom = static_cast<double>((gamepadState.axes[GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER]
...@@ -155,18 +157,10 @@ namespace vkcv::camera { ...@@ -155,18 +157,10 @@ namespace vkcv::camera {
m_gamepadY = gamepadState.buttons[GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER] - gamepadState.buttons[GLFW_GAMEPAD_BUTTON_LEFT_BUMPER]; m_gamepadY = gamepadState.buttons[GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER] - gamepadState.buttons[GLFW_GAMEPAD_BUTTON_LEFT_BUMPER];
float stickLeftX = gamepadState.axes[GLFW_GAMEPAD_AXIS_LEFT_X]; float stickLeftX = gamepadState.axes[GLFW_GAMEPAD_AXIS_LEFT_X];
float stickLeftY = gamepadState.axes[GLFW_GAMEPAD_AXIS_LEFT_Y]; float stickLeftY = gamepadState.axes[GLFW_GAMEPAD_AXIS_LEFT_Y];
if (std::less<float>{}(stickLeftY, -threshold) || std::greater<float>{}(stickLeftY, threshold)) { m_gamepadZ = glm::clamp(std::abs(stickLeftY) - threshold, 0.0, 1.0)
m_gamepadZ = -stickLeftY; * -copysign(1.0, stickLeftY);
} m_gamepadX = glm::clamp(std::abs(stickLeftX) - threshold, 0.0, 1.0)
else { * -copysign(1.0, stickLeftX);
m_gamepadZ = 0.0f;
}
if (std::less<float>{}(stickLeftX, -threshold) || std::greater<float>{}(stickLeftX, threshold)) {
m_gamepadX = -stickLeftX;
}
else {
m_gamepadX = 0.0f;
}
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment