approximative cam movement

This commit is contained in:
2023-06-06 17:56:19 +02:00
parent 39bdd0a11e
commit b70e8f7790
3 changed files with 21 additions and 5 deletions

View File

@@ -48,15 +48,25 @@ void WorldRenderer::UpdateCursorPos() {
void WorldRenderer::Update() {
if (m_WorldVao == nullptr)
return;
ImGuiIO& io = ImGui::GetIO();
if (io.MouseDown[0] && !ImGui::IsAnyItemActive() && !ImGui::IsAnyItemHovered()) {
ImVec2 mouseDelta = ImGui::GetIO().MouseDelta;
MoveCam(mouseDelta.x, mouseDelta.y);
m_Renderer->SetCamMovement({ mouseDelta.x, mouseDelta.y });
}
if (io.MouseDown[1] && !ImGui::IsAnyItemActive() && !ImGui::IsAnyItemHovered()) {
ImVec2 mouseDelta = ImGui::GetIO().MouseDelta;
m_Renderer->SetCamAngularMovement({ mouseDelta.x, mouseDelta.y });
}
if (io.MouseWheel != 0) {
ChangeZoom(io.MouseWheel);
}
UpdateCursorPos();
if (ImGui::IsMouseClicked(0)) {
if (!m_TowerUpgradePopup->IsPopupOpened()) {
m_HoldCursorPos = { io.MousePos.x, io.MousePos.y };
@@ -136,7 +146,7 @@ void WorldRenderer::RenderTooltips() const {
void WorldRenderer::MoveCam(float relativeX, float relativeY) {
if (m_WorldVao == nullptr)
return;
m_Renderer->SetCamMovement({ relativeX, relativeY });
}
void WorldRenderer::ChangeZoom(float zoomStep) {
@@ -144,7 +154,6 @@ void WorldRenderer::ChangeZoom(float zoomStep) {
return;
m_Renderer->SetZoom(zoomStep);
m_Renderer->SetCamMovement({});
}
void WorldRenderer::Click() {