Dependencies:   mbed

Revision:
41:648a271fbbc0
Parent:
40:35f27f0e7833
Child:
42:816e444e660b
diff -r 35f27f0e7833 -r 648a271fbbc0 main.cpp
--- a/main.cpp	Mon May 25 17:37:32 2020 +0000
+++ b/main.cpp	Tue May 26 08:50:57 2020 +0000
@@ -58,86 +58,86 @@
 
 int main()
 {
-    _fps = 6;
-    _counter = 0;
-    _level = 1;
-    _armada_life = true;
-    _ship_life = true;
+    _fps = 6;                                                                   //set frames per second
+    _counter = 0;                                                               //game loop counter set to 0 
+    _level = 1;                                                                 //level set
+    _armada_life = true;                                                        //armada life flag set 
+    _ship_life = true;                                                          //ship life flag set
     
-    hardware_init();
-    start_menu();
-    select_difficulty();
+    hardware_init();                                                            //initialise gamepad hardware
+    start_menu();                                                               //show player the start menu
+    select_difficulty();                                                        //show player the difficulty select menu
     
-    _number_of_aliens = 5 + 5*_difficulty;
+    _number_of_aliens = 5 + 5*_difficulty;                                      //number of aliens increases with difficulty
     
-    draw_game();
-    wait(1.0f/_fps);
+    draw_game();                                                                //draw initial game
+    wait(1.0f/_fps);                                                            //wait frame rate
     
-    while(1){
-        hardware_init();
-        game_init();
-        next_level(_level);
+    while(1){                                                                   //MAIN LOOP
+        hardware_init();                                                        //initialise hardware
+        game_init();                                                            //initialise game engine
+        next_level(_level);                                                     //show level on screen
         //printf("  level ==  %2d",level);
         
-        while(1) {
-            SpaceInvader.read_input(pad);
-            SpaceInvader.update(pad, lcd, _counter, _level);
-            draw_game();
-            wait(1.0f/_fps);
-            _counter++;
-            _ship_life = SpaceInvader.get_ship_life();
-            if(_ship_life == false){
+        while(1) {                                                              //LEVEL LOOP
+            SpaceInvader.read_input(pad);                                       //read player pad input
+            SpaceInvader.update(pad, lcd, _counter, _level);                    //update engine
+            draw_game();                                                        //draw updated game
+            wait(1.0f/_fps);                                                    //wait frame rate
+            _counter++;                                                         //increment counter to show 1 loop completed
+            _ship_life = SpaceInvader.get_ship_life();                          //get the ship life 
+            if(_ship_life == false){                                            //display game over menu if ship life is false (ship has died)
                 game_over(_level);
             }    
-            _armada_life = SpaceInvader.get_armada_life(); 
-            if(_armada_life == false){
+            _armada_life = SpaceInvader.get_armada_life();                      //get armada life
+            if(_armada_life == false){                                          //break from level loop and progress to next level if armada is dead
                 break;
             }
         }
-        SpaceInvader.kill_all();
-        _level++;
+        SpaceInvader.kill_all();                                                //kill all remaining objects from this level
+        _level++;                                                               //increment level
         //printf("   counter =  %2d",counter);
     }
 }
 
 void start_menu() 
 {
-    lcd.printString("Space Invaders",0,1);  
+    lcd.printString("Space Invaders",0,1);                                      //display start menu
     lcd.printString("  Press Start ",0,4);
     lcd.refresh();
     
-    while(pad.start_pressed() == false) {
-        lcd.setContrast( pad.read_pot1());
-        pad.leds_on();
+    while(pad.start_pressed() == false) {                                       //shows start menu until player presses start
+        lcd.setContrast( pad.read_pot1());                                      //set contrast with pad
+        pad.leds_on();                                                          //flash LEDs
         wait(0.1);
         pad.leds_off();
         wait(0.1);
     }
 }
 
-void draw_game()
+void draw_game()                                                                //draws game engine
 {
-    lcd.clear();
-    SpaceInvader.render(lcd);
-    lcd.refresh();
+    lcd.clear();                                                                //clear previous frame
+    SpaceInvader.render(lcd);                                                   //load new frame
+    lcd.refresh();                                                              //display new frame
 }
 
 void hardware_init()
 { 
-    lcd.init();
+    lcd.init();                                                                 //initialise hardware
     pad.init();
 }
-void game_init()
+void game_init()                                                                //initialise game engine and subclasses
 {
     SpaceInvader.init(SHIP_HEIGHT,SHIP_WIDTH,ALIEN_SIZE,_number_of_aliens,COLUMN_SIZE,ROW_SIZE,COVER_Y,COVER1_X,COVER2_X,COVER3_X,ROCK_NUMBER,_level);   
 }
 
-void game_over(int level)
+void game_over(int level)                                                       //game over menu function
 {
     lcd.clear();
     
     while(1){
-        lcd.printString("   Game Over",0,0);  
+        lcd.printString("   Game Over",0,0);                                    //display game over and level until player resets game
         char buffer_[14];
         sprintf(buffer_,"   Level %2d",level);
         lcd.printString(buffer_,0,2);       
@@ -146,9 +146,9 @@
     }
 }
 
-void next_level(int level)
+void next_level(int level)                                                      //next level function
 {
-    lcd.clear();
+    lcd.clear();                                                                //displays upcoming level number
     char buffer_[14];
     sprintf(buffer_,"   Level %2d",level);
     lcd.printString(buffer_,0,2);
@@ -157,10 +157,10 @@
     lcd.clear();
 }
   
-void select_difficulty()
+void select_difficulty()                                                        //select difficulty function
 {
-    _difficulty = 1;
-    bool select_ = false;
+    _difficulty = 1;                                                            //initialise difficulty to 1
+    bool select_ = false;                                                       //initialise select flag to false
     
     while(select_ == false){
         lcd.clear();