feat: Airfields, scaling and movement
This commit is contained in:
20
src/main.cpp
20
src/main.cpp
@@ -8,6 +8,7 @@
|
||||
|
||||
#include "sim/world.hpp"
|
||||
#include "sim/aircraft.hpp"
|
||||
#include "sim/airfield.hpp"
|
||||
|
||||
static SDL_Window *window;
|
||||
static SDL_Renderer *sdl_renderer;
|
||||
@@ -44,8 +45,8 @@ int main(int argc, char *argv[])
|
||||
|
||||
// World init
|
||||
dxd::sim::World world = dxd::sim::World({ .x = 10, .y = 10 });
|
||||
dxd::sim::Aircraft *ac = new dxd::sim::Aircraft({ 0, 0 }, 1, 0.1);
|
||||
world.add_obj(ac);
|
||||
world.add_obj(new dxd::sim::Aircraft({ 0, 0 }, 1, 5));
|
||||
world.add_obj(new dxd::sim::Airfield({ 15, 0 }));
|
||||
|
||||
SDL_Event event;
|
||||
bool running = true;
|
||||
@@ -53,20 +54,29 @@ int main(int argc, char *argv[])
|
||||
while (running) {
|
||||
while (SDL_PollEvent(&event)) {
|
||||
if (event.type == SDL_EVENT_QUIT) running = false;
|
||||
if (event.type == SDL_EVENT_KEY_DOWN) {
|
||||
if (event.key.key == SDLK_ESCAPE) running = false;
|
||||
}
|
||||
}
|
||||
|
||||
const bool *key_states = SDL_GetKeyboardState(NULL);
|
||||
if (key_states[SDL_SCANCODE_W]) renderer.move_camera(vec2_unity * 30 * (1.0f / 60.0f));
|
||||
if (key_states[SDL_SCANCODE_S]) renderer.move_camera(-vec2_unity * 30 * (1.0f / 60.0f));
|
||||
if (key_states[SDL_SCANCODE_A]) renderer.move_camera(-vec2_unitx * 30 * (1.0f / 60.0f));
|
||||
if (key_states[SDL_SCANCODE_D]) renderer.move_camera(vec2_unitx * 30 * (1.0f / 60.0f));
|
||||
|
||||
// Clear
|
||||
renderer.color(0, 0, 0, 255);
|
||||
SDL_RenderClear(sdl_renderer);
|
||||
|
||||
// World draw
|
||||
renderer.color(255, 255, 255, 255);
|
||||
world.draw(&renderer);
|
||||
world.tick(1.0f / 60.0f);
|
||||
|
||||
// Usual test
|
||||
renderer.color(127, 0, 0, 255);
|
||||
renderer.line(-vec2_one, vec2_one);
|
||||
renderer.color(64, 64, 64, 255);
|
||||
renderer.line(-vec2_unity * 2000, vec2_unity * 2000);
|
||||
renderer.line(-vec2_unitx * 2000, vec2_unitx * 2000);
|
||||
|
||||
SDL_RenderPresent(sdl_renderer);
|
||||
SDL_Delay(1000 / 60);
|
||||
|
||||
Reference in New Issue
Block a user