X-Git-Url: http://git.localhorst.tv/?p=space.git;a=blobdiff_plain;f=src%2Fapp%2FApplication.cpp;fp=src%2Fapp%2FApplication.cpp;h=9ebc2613d7d24a93be4fca69ddc66c200d16a13d;hp=b2ef9161287b5cf77e30ca188386174f116d1390;hb=2d0a41dc0a53915153ceccda914d59affd388864;hpb=3f4f8a92f64df08119a40da4d196b3e92ecdc637 diff --git a/src/app/Application.cpp b/src/app/Application.cpp index b2ef916..9ebc261 100644 --- a/src/app/Application.cpp +++ b/src/app/Application.cpp @@ -87,6 +87,12 @@ void Application::OnKeyDown(const SDL_KeyboardEvent &e) { case SDLK_d: control.x += 1; break; + case SDLK_z: + cam.DoubleZoom(); + break; + case SDLK_x: + cam.HalfZoom(); + break; default: break; } @@ -127,6 +133,7 @@ void Application::OnKeyUp(const SDL_KeyboardEvent &e) { void Application::Update(int dt) { const float delta = dt / 1e3; controlled->acc = Vector(control * 10); + cam.Update(delta); univ.Update(delta); focus.Update(delta); } @@ -140,17 +147,17 @@ void Application::Render() { constexpr Color focusColor(0xFA, 0xFA, 0x00); SDL_Surface *dst = screen.Screen(); - const Vector begin = cam.Offset(); + const Vector begin = cam.ToScreen(Vector(0, 0)); const Vector end = - begin + (univ.size * univ.secSize * univ.areaSize) + Vector(1, 1); + cam.ToScreen((univ.size * univ.secSize * univ.areaSize)) + Vector(1, 1);; Fill(dst, background); - Grid(dst, begin, end, univ.areaSize, secGrid); - Grid(dst, begin, end, univ.secSize * univ.areaSize, univGrid); - Cross(dst, begin + Vector(focus.Pos()), 15, focusColor); + Grid(dst, begin, end, cam.ToScale(univ.areaSize), secGrid); + Grid(dst, begin, end, cam.ToScale(univ.secSize * univ.areaSize), univGrid); + Cross(dst, cam.ToScreen(focus.Pos()), 15, focusColor); for (const Entity &e : univ.Entities()) { - Cross(dst, begin + (e.area * univ.areaSize) + Vector(e.pos), 10, entityColor); + Cross(dst, cam.ToScreen((e.area * univ.areaSize) + Vector(e.pos)), 10, entityColor); } }