
Ellis Blackford Stroud 201155309
Dependencies: mbed FATFileSystem
Diff: main.cpp
- Revision:
- 9:bc34f2243e43
- Parent:
- 8:d410856c6d04
- Child:
- 10:9f54a6366e94
--- a/main.cpp Thu Apr 18 10:42:42 2019 +0000 +++ b/main.cpp Sat Apr 20 10:42:17 2019 +0000 @@ -19,7 +19,11 @@ Gamepad pad; Menu menu; GolfEngine golf; + +//functions void init(); +void inverseFlash(); + int frame_rate = 40; @@ -36,21 +40,36 @@ menu.menu_screen(pad, lcd); start_game = menu.menu_change(lcd, pad); //changes menu screen to selected screen the returns true when start game } - - frame_rate = menu.get_frame_rate(); //can be changed in the settings screen + lcd.clear(); + golf.printLevel(lcd); + lcd.refresh(); + wait(1); + frame_rate = menu.get_frame_rate(); //changes frame rate to the value chosen in settings //game loop to run game while(1){ - - lcd.clear(); - golf.read_input(pad); - golf.update_ball(pad, frame_rate); - golf.drawGame(lcd, pad); - lcd.refresh(); - wait(1.0f/frame_rate); //time between loops/frames - + + if(golf.get_hole_flag() == false) { //if ball not in hole + + lcd.clear(); + golf.read_input(pad); + golf.update_ball(pad, frame_rate); + golf.drawGame(lcd, pad); + lcd.refresh(); + wait(1.0f/frame_rate); //time between loops/frames (at lower frame rates ball may be harder to get in hole) + + } else if(golf.get_hole_flag() == true) { //if ball goes in hole end level and start new level + + inverseFlash(); //flashes screen pixels on and off + inverseFlash(); + lcd.clear(); + golf.new_level(); //moves ball to new level position and increments level + golf.reset_hole_flag(); //so that the game loop can continue + golf.printLevel(lcd); //notifying user of start of new level + lcd.refresh(); + wait(1); + } } - } void init() @@ -61,3 +80,19 @@ golf.init(); lcd.setContrast(0.5f); } + +void inverseFlash() +{ + lcd.inverseMode(); + lcd.refresh(); + wait(0.25); + lcd.normalMode(); + lcd.refresh(); + wait(0.25); + lcd.inverseMode(); + lcd.refresh(); + wait(0.25); + lcd.normalMode(); + lcd.refresh(); + wait(0.25); +}