diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/engine/app.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
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()}); |
