X-Git-Url: http://git.localhorst.tv/?p=space.git;a=blobdiff_plain;f=src%2Fapp%2FApplication.cpp;fp=src%2Fapp%2FApplication.cpp;h=5820c57ba3eb10aeea807893f3f384a7bc5438a9;hp=488b952243b94880e12886185d0b612080466b81;hb=699437a474de8b87ccb6749d44adf740e680d620;hpb=1129b8ac89f1e614f69793227ccec90157708aea diff --git a/src/app/Application.cpp b/src/app/Application.cpp index 488b952..5820c57 100644 --- a/src/app/Application.cpp +++ b/src/app/Application.cpp @@ -13,7 +13,7 @@ Application::Application(Canvas &c) , cam(c.Size(), focus.Pos()) , last(SDL_GetTicks()) , running(false) { - controlled = univ.AddEntity(Entity()); + controlled = univ.AddShip(Ship()); } @@ -142,7 +142,8 @@ void Application::OnKeyUp(const SDL_KeyboardEvent &e) { void Application::Update(int dt) { const float delta = dt / 1e3; - controlled->acc = Vector(control * 10); + controlled->rotThrottle = control.x; + controlled->linThrottle = -control.y; cam.Update(delta); univ.Update(delta); focus.SetSpeed(500 / cam.Zoom()); @@ -172,10 +173,14 @@ void Application::Render() { canvas.Cross(cam.ToScreen(focus.Pos()), 15); canvas.SetColor(entityColor); - for (const Entity &e : univ.Entities()) { - canvas.Cross( - cam.ToScreen(Vector(e.area * univ.areaSize) + e.pos), - 10); + for (const Ship &s : univ.Ships()) { + const Vector direction = s.Dir(); + const Vector position = cam.ToScreen(Vector(s.area * univ.areaSize) + s.pos); + const Vector nose = position + Vector(direction * 15.0f); + const Vector left = position + Vector((Rotate90(direction) * 8.0f) - (direction * 4.0f)); + const Vector right = position + Vector((Rotate270(direction) * 8.0f) - (direction * 4.0f)); + canvas.Line(position, nose); + canvas.Quad(nose, left, position, right); } }