From 37b5f7c8bd0b4c0e297614577edb7b634c13d700 Mon Sep 17 00:00:00 2001 From: "Emil A. Overbeck" Date: Sun, 19 Jul 2026 03:17:57 +0200 Subject: WASD bindings --- src/engine/app.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/engine/app.cpp') diff --git a/src/engine/app.cpp b/src/engine/app.cpp index 2108316..fa1155c 100644 --- a/src/engine/app.cpp +++ b/src/engine/app.cpp @@ -32,10 +32,13 @@ App::~App() { } static void update_camera(Camera& cam, const Input& input, float dt) { - if (input.key_down(SDLK_LEFT)) cam.pan({-cam.pan_speed * dt / cam.zoom(), 0.0f}); - if (input.key_down(SDLK_RIGHT)) cam.pan({ cam.pan_speed * dt / cam.zoom(), 0.0f}); - if (input.key_down(SDLK_UP)) cam.pan({0.0f, cam.pan_speed * dt / cam.zoom()}); - if (input.key_down(SDLK_DOWN)) cam.pan({0.0f, -cam.pan_speed * dt / cam.zoom()}); + // WASD mirrors the arrow keys. Build modes are on the number row, so the + // letters are free. + const float step = cam.pan_speed * dt / cam.zoom(); + if (input.key_down(SDLK_LEFT) || input.key_down(SDLK_A)) cam.pan({-step, 0.0f}); + if (input.key_down(SDLK_RIGHT) || input.key_down(SDLK_D)) cam.pan({ step, 0.0f}); + if (input.key_down(SDLK_UP) || input.key_down(SDLK_W)) cam.pan({0.0f, step}); + if (input.key_down(SDLK_DOWN) || input.key_down(SDLK_S)) cam.pan({0.0f, -step}); if (input.mouse_down(SDL_BUTTON_MIDDLE)) { auto d = input.mouse_delta(); cam.pan({-d.x / cam.zoom(), d.y / cam.zoom()}); -- cgit v1.3