really bad controls
This commit is contained in:
@@ -55,7 +55,7 @@ public:
|
|||||||
|
|
||||||
void SetCamPos(float camX, float camY);
|
void SetCamPos(float camX, float camY);
|
||||||
|
|
||||||
void MoveCam(float relativeX, float relativeY, float aspectRatio);
|
void MoveCam(float relativeX, float relativeY);
|
||||||
void ChangeZoom(float zoom);
|
void ChangeZoom(float zoom);
|
||||||
|
|
||||||
// WorldListener
|
// WorldListener
|
||||||
|
|||||||
@@ -86,15 +86,12 @@ void Renderer::Resize(int width, int height) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Renderer::SetZoom(float zoom) {
|
void Renderer::SetZoom(float zoom) {
|
||||||
m_WorldShader->Start();
|
m_Camera.CamPos.y = std::max(1.0f, m_Camera.CamPos.y + zoom);
|
||||||
//m_WorldShader->SetZoom(zoom);
|
|
||||||
m_EntityShader->Start();
|
|
||||||
//m_EntityShader->SetZoom(zoom);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Renderer::SetCamMovement(const Vec2f& mov) {
|
void Renderer::SetCamMovement(const Vec2f& mov) {
|
||||||
m_Camera.CamPos.x += mov.x;
|
m_Camera.CamPos.x -= mov.x / m_Camera.CamPos.y * 5000.0f;
|
||||||
m_Camera.CamPos.y += -mov.y;
|
m_Camera.CamPos.z -= mov.y / m_Camera.CamPos.y * 5000.0f;
|
||||||
SetCamPos(m_Camera.CamPos);
|
SetCamPos(m_Camera.CamPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ void WorldRenderer::Update() {
|
|||||||
ImVec2 mouseDelta = ImGui::GetIO().MouseDelta;
|
ImVec2 mouseDelta = ImGui::GetIO().MouseDelta;
|
||||||
const float relativeX = mouseDelta.x / (float)Display::GetWindowWidth() * 2;
|
const float relativeX = mouseDelta.x / (float)Display::GetWindowWidth() * 2;
|
||||||
const float relativeY = mouseDelta.y / (float)Display::GetWindowHeight() * 2;
|
const float relativeY = mouseDelta.y / (float)Display::GetWindowHeight() * 2;
|
||||||
MoveCam(relativeX, relativeY, Display::GetAspectRatio());
|
MoveCam(relativeX, relativeY);
|
||||||
}
|
}
|
||||||
if (io.MouseWheel != 0) {
|
if (io.MouseWheel != 0) {
|
||||||
ChangeZoom(io.MouseWheel);
|
ChangeZoom(io.MouseWheel);
|
||||||
@@ -135,24 +135,17 @@ void WorldRenderer::RenderTooltips() const {
|
|||||||
RenderCastleTooltip();
|
RenderCastleTooltip();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldRenderer::MoveCam(float relativeX, float relativeY, float aspectRatio) {
|
void WorldRenderer::MoveCam(float relativeX, float relativeY) {
|
||||||
if (m_WorldVao == nullptr)
|
if (m_WorldVao == nullptr)
|
||||||
return;
|
return;
|
||||||
float movementX = -relativeX / m_Zoom * aspectRatio;
|
m_Renderer->SetCamMovement({ relativeX, relativeY });
|
||||||
float movementY = relativeY / m_Zoom;
|
|
||||||
m_Renderer->SetCamMovement({ movementX, movementY });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldRenderer::ChangeZoom(float zoomStep) {
|
void WorldRenderer::ChangeZoom(float zoomStep) {
|
||||||
if (m_WorldVao == nullptr)
|
if (m_WorldVao == nullptr)
|
||||||
return;
|
return;
|
||||||
static float sensibility = 1.5f;
|
|
||||||
if (zoomStep < 0) {
|
m_Renderer->SetZoom(zoomStep);
|
||||||
m_Zoom /= -zoomStep * sensibility;
|
|
||||||
} else {
|
|
||||||
m_Zoom *= zoomStep * sensibility;
|
|
||||||
}
|
|
||||||
m_Renderer->SetZoom(m_Zoom);
|
|
||||||
m_Renderer->SetCamMovement({});
|
m_Renderer->SetCamMovement({});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user