Dependencies: mbed
Diff: main.cpp
- 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();