Solution

Files changed (1) hide show
  1. lab3-camera/lab3_main.cpp +4 -3
lab3-camera/lab3_main.cpp CHANGED
@@ -252,6 +252,7 @@ bool handleEvents(void)
252
252
  if(!ImGui::GetIO().WantCaptureKeyboard)
253
253
  {
254
254
  vec3 car_forward = vec3(0, 0, 1);
255
+ car_forward = vec3(R * vec4(car_forward, 0));
255
256
  if(state[SDL_SCANCODE_UP])
256
257
  {
257
258
  T = translate(car_forward * speed * deltaTime) * T;
@@ -262,15 +263,15 @@ bool handleEvents(void)
262
263
  }
263
264
  if(state[SDL_SCANCODE_LEFT])
264
265
  {
265
- T = translate(vec3(1, 0, 0) * speed * deltaTime) * T;
266
+ R = rotate(rotateSpeed * deltaTime, glm::vec3(0, 1, 0)) * R;
266
267
  }
267
268
  if(state[SDL_SCANCODE_RIGHT])
268
269
  {
269
- T = translate(-vec3(1, 0, 0) * speed * deltaTime) * T;
270
+ R = rotate(-rotateSpeed * deltaTime, glm::vec3(0, 1, 0)) * R;
270
271
  }
271
272
  }
272
273
 
273
- carModelMatrix = T;
274
+ carModelMatrix = T * R;
274
275
 
275
276
 
276
277
  return quitEvent;