Application::Application(InitScreen &s)
: screen(s)
-, univ(Vector<int>(10, 10), Vector<int>(10, 10), Vector<int>(10, 10), 10)
+, univ(Vector<int>(10, 10), Vector<int>(10, 10), Vector<int>(10, 10))
, focus(Vector<float>(500, 500), 500)
, cam(800, 800, focus.Pos())
, last(SDL_GetTicks())
control.x += 1;
break;
case SDLK_z:
- cam.DoubleZoom();
+ cam.StartZoom();
break;
case SDLK_x:
- cam.HalfZoom();
+ cam.StartShrink();
break;
default:
break;
case SDLK_d:
control.x -= 1;
break;
+ case SDLK_z:
+ cam.StopZoom();
+ break;
+ case SDLK_x:
+ cam.StopShrink();
+ break;
default:
break;
}
controlled->acc = Vector<float>(control * 10);
cam.Update(delta);
univ.Update(delta);
+ focus.SetSpeed(500 / cam.Zoom());
focus.Update(delta);
}
SDL_Surface *dst = screen.Screen();
const Vector<int> begin = cam.ToScreen(Vector<float>(0, 0));
const Vector<int> end =
- cam.ToScreen((univ.size * univ.secSize * univ.areaSize)) + Vector<int>(1, 1);;
+ cam.ToScreen((univ.size * univ.secSize * univ.areaSize))
+ + Vector<int>(1, 1);
Fill(dst, background);
- Grid(dst, begin, end, cam.ToScale(univ.areaSize), secGrid);
- Grid(dst, begin, end, cam.ToScale(univ.secSize * univ.areaSize), univGrid);
+ Grid2(dst, begin, end, cam.ToScale(univ.areaSize), univ.secSize, secGrid, univGrid);
Cross(dst, cam.ToScreen(focus.Pos()), 15, focusColor);
for (const Entity &e : univ.Entities()) {