@@ -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
|
-
|
250
|
-
|
251
|
-
|
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
|
-
|
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
|
|