really bad controls

This commit is contained in:
2023-06-04 13:02:41 +02:00
parent 051c9d8744
commit 41f8c152eb
3 changed files with 9 additions and 19 deletions

View File

@@ -86,15 +86,12 @@ void Renderer::Resize(int width, int height) {
}
void Renderer::SetZoom(float zoom) {
m_WorldShader->Start();
//m_WorldShader->SetZoom(zoom);
m_EntityShader->Start();
//m_EntityShader->SetZoom(zoom);
m_Camera.CamPos.y = std::max(1.0f, m_Camera.CamPos.y + zoom);
}
void Renderer::SetCamMovement(const Vec2f& mov) {
m_Camera.CamPos.x += mov.x;
m_Camera.CamPos.y += -mov.y;
m_Camera.CamPos.x -= mov.x / m_Camera.CamPos.y * 5000.0f;
m_Camera.CamPos.z -= mov.y / m_Camera.CamPos.y * 5000.0f;
SetCamPos(m_Camera.CamPos);
}

View File

@@ -53,7 +53,7 @@ void WorldRenderer::Update() {
ImVec2 mouseDelta = ImGui::GetIO().MouseDelta;
const float relativeX = mouseDelta.x / (float)Display::GetWindowWidth() * 2;
const float relativeY = mouseDelta.y / (float)Display::GetWindowHeight() * 2;
MoveCam(relativeX, relativeY, Display::GetAspectRatio());
MoveCam(relativeX, relativeY);
}
if (io.MouseWheel != 0) {
ChangeZoom(io.MouseWheel);
@@ -135,24 +135,17 @@ void WorldRenderer::RenderTooltips() const {
RenderCastleTooltip();
}
void WorldRenderer::MoveCam(float relativeX, float relativeY, float aspectRatio) {
void WorldRenderer::MoveCam(float relativeX, float relativeY) {
if (m_WorldVao == nullptr)
return;
float movementX = -relativeX / m_Zoom * aspectRatio;
float movementY = relativeY / m_Zoom;
m_Renderer->SetCamMovement({ movementX, movementY });
m_Renderer->SetCamMovement({ relativeX, relativeY });
}
void WorldRenderer::ChangeZoom(float zoomStep) {
if (m_WorldVao == nullptr)
return;
static float sensibility = 1.5f;
if (zoomStep < 0) {
m_Zoom /= -zoomStep * sensibility;
} else {
m_Zoom *= zoomStep * sensibility;
}
m_Renderer->SetZoom(m_Zoom);
m_Renderer->SetZoom(zoomStep);
m_Renderer->SetCamMovement({});
}