Solution

Files changed (1) hide show
  1. lab3-camera/lab3_main.cpp +24 -14
lab3-camera/lab3_main.cpp CHANGED
@@ -246,23 +246,33 @@ bool handleEvents(void)
246
246
  const uint8_t* state = SDL_GetKeyboardState(nullptr);
247
247
 
248
248
  // implement camera controls based on key states
249
- if(state[SDL_SCANCODE_UP])
250
- {
251
- printf("Key Up is pressed down\n");
252
- }
253
- if(state[SDL_SCANCODE_DOWN])
254
- {
255
- printf("Key Down is pressed down\n");
256
- }
257
- if(state[SDL_SCANCODE_LEFT])
258
- {
259
- printf("Key Left is pressed down\n");
260
- }
261
- if(state[SDL_SCANCODE_RIGHT])
249
+ const float speed = 10.f;
250
+ const float rotateSpeed = 2.f;
251
+
252
+ if(!ImGui::GetIO().WantCaptureKeyboard)
262
253
  {
263
- printf("Key Right is pressed down\n");
254
+ vec3 car_forward = vec3(0, 0, 1);
255
+ if(state[SDL_SCANCODE_UP])
256
+ {
257
+ T = translate(car_forward * speed * deltaTime) * T;
258
+ }
259
+ if(state[SDL_SCANCODE_DOWN])
260
+ {
261
+ T = translate(-car_forward * speed * deltaTime) * T;
262
+ }
263
+ if(state[SDL_SCANCODE_LEFT])
264
+ {
265
+ T = translate(vec3(1, 0, 0) * speed * deltaTime) * T;
266
+ }
267
+ if(state[SDL_SCANCODE_RIGHT])
268
+ {
269
+ T = translate(-vec3(1, 0, 0) * speed * deltaTime) * T;
270
+ }
264
271
  }
265
272
 
273
+ carModelMatrix = T;
274
+
275
+
266
276
  return quitEvent;
267
277
  }
268
278