int render::execute() { if (play) updateSounds(); checkBalls(); draw(); SDL_GL_SwapWindow(mainwindow); if (checkKeys() < 0) return -1; return 0; }
// catch balls: void catchBalls(int color){ enable_servo(ASV); enable_servo(SSV); set_servo_position(ASV,700); set_servo_position(SSV,200); msleep(500); camera_open(); camera_update(); while(get_object_center_column(color,0) != OFFSET_X){ while(get_object_center_column(color,0) > OFFSET_X){ motor(LM,10); motor(RM,-10); camera_update(); } motor(LM,-10); motor(RM,10); camera_update(); } while(get_object_center_row(color,0) != OFFSET_Y){ while(get_object_center_row(color,0) > OFFSET_Y){ motor(LM,-10); motor(RM,-10); camera_update(); } motor(LM,10); motor(RM,10); camera_update(); } set_servo_position(ASV,1900); msleep(1500); set_servo_position(ASV,1700); msleep(500); camera_update(); if( checkBalls(GREEN) == 0 ){ set_servo_position(SSV,180); msleep(300); set_servo_position(SSV,0); }else{ set_servo_position(ASV,0); } }