diff --git a/src/sdl.c b/src/sdl.c index ab27553..0d9727e 100644 --- a/src/sdl.c +++ b/src/sdl.c @@ -16,9 +16,13 @@ struct { }; int color = 0; +float pitch = 0, yaw = 0; float x = 0, y = 0, z = 0; static Uint32 drive_timer_handler(Uint32 interval, void* param) { robot_drive((Robot)param, x, y, z); + robot_aim((Robot)param, pitch, yaw); + yaw *= 0.80; + pitch *= 0.80; return 75; } static Uint32 heartbeat_timer_handler(Uint32 interval, void* param) { @@ -47,6 +51,9 @@ int main(int argc, char* argv[]) { SDL_AddTimer(75, drive_timer_handler, robot); SDL_AddTimer(1000, heartbeat_timer_handler, robot); + int h, w; + SDL_GetWindowSize(win, &w, &h); + while(robot_work(robot)) { SDL_Event event; while(SDL_PollEvent(&event)) { @@ -79,8 +86,14 @@ int main(int argc, char* argv[]) { case SDL_SCANCODE_SPACE: robot_led(robot, colors[color].r, colors[color].g, colors[color].b); color = (color + 1) % 3; + break; default: break; } + break; + case SDL_MOUSEMOTION: + yaw = (float)event.motion.xrel; + pitch = (float)event.motion.yrel; + break; case SDL_WINDOWEVENT: if(event.window.event != SDL_WINDOWEVENT_CLOSE) break; case SDL_QUIT: