X-Git-Url: http://git.localhorst.tv/?p=space.git;a=blobdiff_plain;f=src%2Fapp%2FApplication.cpp;fp=src%2Fapp%2FApplication.cpp;h=b2ef9161287b5cf77e30ca188386174f116d1390;hp=247819c41bd0088d9f1a51e9b3dc7745954ff17c;hb=3f4f8a92f64df08119a40da4d196b3e92ecdc637;hpb=96ab5904b059e00e78b26a6527790c8dc951e324 diff --git a/src/app/Application.cpp b/src/app/Application.cpp index 247819c..b2ef916 100644 --- a/src/app/Application.cpp +++ b/src/app/Application.cpp @@ -9,12 +9,12 @@ namespace space { Application::Application(InitScreen &s) : screen(s) -, univ(10, 10, 10, 10, 10) +, univ(Vector(10, 10), Vector(10, 10), Vector(10, 10), 10) , focus(Vector(500, 500), 500) , cam(800, 800, focus.Pos()) , last(SDL_GetTicks()) , running(false) { - + controlled = univ.AddEntity(Entity()); } @@ -75,6 +75,18 @@ void Application::OnKeyDown(const SDL_KeyboardEvent &e) { case SDLK_RIGHT: focus.MoveRight(); break; + case SDLK_w: + control.y -= 1; + break; + case SDLK_s: + control.y += 1; + break; + case SDLK_a: + control.x -= 1; + break; + case SDLK_d: + control.x += 1; + break; default: break; } @@ -94,6 +106,18 @@ void Application::OnKeyUp(const SDL_KeyboardEvent &e) { case SDLK_RIGHT: focus.StopRight(); break; + case SDLK_w: + control.y += 1; + break; + case SDLK_s: + control.y -= 1; + break; + case SDLK_a: + control.x += 1; + break; + case SDLK_d: + control.x -= 1; + break; default: break; } @@ -101,26 +125,33 @@ void Application::OnKeyUp(const SDL_KeyboardEvent &e) { void Application::Update(int dt) { - focus.Update(dt / 1e3); + const float delta = dt / 1e3; + controlled->acc = Vector(control * 10); + univ.Update(delta); + focus.Update(delta); } void Application::Render() { constexpr Color background(0x00, 0x00, 0x00); - constexpr Color univGrid(0xFF, 0xFF, 0xFF); - constexpr Color sectGrid(0xAA, 0xAA, 0xAA); - - constexpr Vector areaSize(10, 10); - constexpr Vector sectSize(areaSize * 10); - constexpr Vector univSize(sectSize * 10); + constexpr Color univGrid(0xEE, 0xEE, 0xEE); + constexpr Color secGrid(0x77, 0x77, 0x77); + constexpr Color entityColor(0x00, 0xAA, 0xAA); + constexpr Color focusColor(0xFA, 0xFA, 0x00); SDL_Surface *dst = screen.Screen(); - Vector offset = cam.Offset(); + const Vector begin = cam.Offset(); + const Vector end = + begin + (univ.size * univ.secSize * univ.areaSize) + Vector(1, 1); Fill(dst, background); - Grid(dst, offset, offset + univSize + Vector(1, 1), areaSize, sectGrid); - Grid(dst, offset, offset + univSize + Vector(1, 1), sectSize, univGrid); - Cross(dst, offset + Vector(focus.Pos()), 15, Color(0xFF, 0xFF, 0x00)); + Grid(dst, begin, end, univ.areaSize, secGrid); + Grid(dst, begin, end, univ.secSize * univ.areaSize, univGrid); + Cross(dst, begin + Vector(focus.Pos()), 15, focusColor); + + for (const Entity &e : univ.Entities()) { + Cross(dst, begin + (e.area * univ.areaSize) + Vector(e.pos), 10, entityColor); + } } }