This commit is contained in:
Georg Hagen
2024-07-01 14:28:20 +02:00
parent f9467f322f
commit 83a1dd9a04
2 changed files with 13 additions and 0 deletions

View File

@@ -15,6 +15,7 @@ namespace OpenVulkano
auto input = Input::InputManager::GetInstance(); auto input = Input::InputManager::GetInstance();
m_actionUp = input->GetAction("map_up"); m_actionUp = input->GetAction("map_up");
m_actionSide = input->GetAction("map_side"); m_actionSide = input->GetAction("map_side");
m_actionZoom = input->GetAction("map_zoom");
} }
void MapCameraController::Tick() void MapCameraController::Tick()
@@ -25,6 +26,15 @@ namespace OpenVulkano
vec /= GetCamera()->GetZoom(); vec /= GetCamera()->GetZoom();
vec /= GetCamera()->GetContentScaleFactor(); vec /= GetCamera()->GetContentScaleFactor();
float zoom = Input::InputManager::GetInstance()->GetAxis(m_actionZoom);
if (zoom != 0)
{
float tmp = sqrt(GetCamera()->GetZoom()) + zoom / std::max(10.0f, (100 - GetCamera()->GetZoom()));
tmp = std::max(3.0f, tmp);
GetCamera()->SetZoom(tmp * tmp);
GetCamera()->UpdateProjectionMatrix();
}
GetCamera()->SetMatrix(Math::Utils::translate(vec) * GetCamera()->GetMatrix()); GetCamera()->SetMatrix(Math::Utils::translate(vec) * GetCamera()->GetMatrix());
} }
@@ -36,5 +46,7 @@ namespace OpenVulkano
m_actionSide->BindKey(Input::InputKey::Controller::AXIS_LEFT_X); m_actionSide->BindKey(Input::InputKey::Controller::AXIS_LEFT_X);
m_actionSide->BindKey(Input::InputKey::Touch::AXIS_PAN_X); m_actionSide->BindKey(Input::InputKey::Touch::AXIS_PAN_X);
m_actionSide->BindKey(Input::InputKey::Mouse::AXIS_X); m_actionSide->BindKey(Input::InputKey::Mouse::AXIS_X);
m_actionZoom->BindKey(Input::InputKey::Mouse::AXIS_WHEEL_Y, 2);
m_actionZoom->BindKey(Input::InputKey::Touch::AXIS_PINCH, 0.2);
} }
} }

View File

@@ -20,6 +20,7 @@ namespace OpenVulkano
{ {
Input::InputAction* m_actionSide; Input::InputAction* m_actionSide;
Input::InputAction* m_actionUp; Input::InputAction* m_actionUp;
Input::InputAction* m_actionZoom;
Math::Vector3f_SIMD m_dirUp; Math::Vector3f_SIMD m_dirUp;
Math::Vector3f_SIMD m_dirSide; Math::Vector3f_SIMD m_dirSide;