Ben Evans / Mbed 2 deprecated Defender_Game

Dependencies:   mbed

Revision:
85:87bc28b151d8
Parent:
82:3211b31e9421
Child:
86:eecd168c3a23
--- a/GameEngine/PlayEngine.cpp	Tue May 26 14:39:45 2020 +0000
+++ b/GameEngine/PlayEngine.cpp	Tue May 26 19:38:48 2020 +0000
@@ -10,8 +10,8 @@
     // printf("Pitch = %f  Roll = %f\n", pitch, roll);  
      
     // North
-    if(pitch >= -35) {
-        if(roll >= 10) {
+    if (pitch >= -35) {
+        if (roll >= 10) {
             d_ = NE;
         }else if (roll <= -10) {
             d_ = NW;
@@ -19,10 +19,10 @@
             d_ = N;
         }
     // South
-    }else if(pitch <= -55) {
+    }else if (pitch <= -55) {
         if (roll >= 10) {
             d_ = SE;
-        }else if(roll <= -10) {
+        }else if (roll <= -10) {
             d_ = SW;
         }else {
             d_ = S; 
@@ -31,7 +31,7 @@
     }else {
         if (roll >= 10) {
             d_ = E;
-        }else if(roll <= -10) {
+        }else if (roll <= -10) {
             d_ = W;
         }else{
             d_ = CENTRE;
@@ -43,19 +43,19 @@
     pad.leds_off(); 
     
     // Top two red leds on if 1 lives left
-    if(spaceship_lives_ >= 1) {
+    if (spaceship_lives_ >= 1) {
         pad.led(1,1); 
         pad.led(4,1);
     }
     
     // Middle two orange leds also on if 2 lives left
-    if(spaceship_lives_ >= 2) {
+    if (spaceship_lives_ >= 2) {
         pad.led(2,1);
         pad.led(5,1);
     }
     
     // Bottom two red leds also on if 3 lives left
-    if(spaceship_lives_ == 3) {
+    if (spaceship_lives_ == 3) {
         pad.led(3,1);
         pad.led(6,1);
     }
@@ -90,19 +90,19 @@
         // Deletes alien object if on screen and person object if abducted
         for (int i = (alien_vector.size() -1) ; i >= 0 ; i--) {
             Vector2D alien_pos = alien_vector[i].get_pos(); 
+            
+            // Delete person object if was being abducted by destroyed alien
+            if (alien_vector[i].get_collision_people_element() > -1) {
+                people_vector.erase(people_vector.begin() + 
+                alien_vector[i].get_collision_people_element()); 
+            } 
                  
             // Creats explosion if alien was on the screen    
-            if(alien_pos.x <= 84 && alien_pos.x >= -6) {
+            if (alien_pos.x <= 84 && alien_pos.x >= -6) {
                 create_explosion(alien_pos);    
                 alien_vector.erase(alien_vector.begin()+ i);
                 points_ ++;  
-            }
-                
-            // Delete person object if was being abducted by destroyed alien
-            if(alien_vector[i].get_collision_people_element() > -1) {
-                people_vector.erase(people_vector.begin() + 
-                alien_vector[i].get_collision_people_element()); 
-            } 
+            }   
         }
     
     // Timer to stop smart bomb button be accidently pressed twice or spammed 
@@ -119,11 +119,11 @@
         alien_bullet_vector[i].draw_alien_bullet(lcd, d_);
         
         // Deletes alien bullet object after bullet has moved set distance   
-        if(alien_bullet_vector[i].get_bullet_delete_counter() >> 5) {
+        if (alien_bullet_vector[i].get_bullet_delete_counter() >> 5) {
              alien_bullet_vector.erase(alien_bullet_vector.begin()+ i);
         }
         
-        // Deletes bullet and shpaceship if collision detected
+        // Deletes bullet and spaceship if collision detected
         if (spaceship.check_collision(alien_bullet_vector[i]) && 
         !spaceship_destroyed_ ) {
             create_explosion(spaceship.get_pos());
@@ -137,7 +137,7 @@
         bullet_vector[i].draw_bullet(lcd);
          
         // Deletes bullet object after bullet has moved set distance   
-        if(bullet_vector[i].get_bullet_delete_counter() >> 5) {
+        if (bullet_vector[i].get_bullet_delete_counter() >> 5) {
              bullet_vector.erase(bullet_vector.begin()+ i);
         }
     }
@@ -149,16 +149,16 @@
 // Alien Control ---------------------------------------------------------------
 
 void PlayEngine::spawn_aliens() {
-    if(alien_vector.size() <= alien_number_) {
+    if (alien_vector.size() <= alien_number_) {
         create_alien();
     }
     
     // printf( " alien_number_counter_ = %d\n",alien_number_counter_);
     
-    // Slowley incresing the alien counter as game goes on to make harder
-    if(spawn_alien_counter_%(500*spawn_time_multipler_) ==  0) {
+    // Slowly increasing the alien counter as game goes on to make harder
+    if (spawn_alien_counter_%(375*spawn_time_multipler_) ==  0) {
         alien_number_++;
-        spawn_time_multipler_++;      
+        spawn_time_multipler_*= 1.2;      
     }
     
     spawn_alien_counter_++;
@@ -171,7 +171,7 @@
     Alien new_alien;
     
     // Spawns aliens between x > 84 and x <0
-    if(rand() % 2) {
+    if (rand() % 2) {
         position_x_start = rand() % 84 + 84;
     }else{
         position_x_start =rand() % 83 - 84;
@@ -184,9 +184,9 @@
 
 void PlayEngine::check_alien_people_collision(int i) {
     // Only a collision if all three of theses conditions are met:
-    // Checks all these codition for every alien to every person
+    // Checks all these condition for every alien to every person
     // 1)person hasn't already had a collision
-    // 2)There is an acutaual collision of people and alien
+    // 2)There is an actual collision of people and alien
     for (int x = 0; x < people_vector.size(); x++) {
         if (!people_vector[x].get_alien_collision_flag() &&
             people_vector[x].check_alien_collision(alien_vector[i])) {  
@@ -195,7 +195,7 @@
     }
     
     // Draws collision if detected
-    if(alien_vector[i].get_collision_people_element() > -1) {
+    if (alien_vector[i].get_collision_people_element() > -1) {
         alien_vector[i].draw_alien(lcd,spaceship.get_pos(),d_, 
         map.get_length_map(), map.get_position_x_map(),true);
     }else{
@@ -212,7 +212,7 @@
         bool alien_bullet_direction = false;
         Vector2D spaceship_pos = spaceship.get_pos();
         Vector2D alien_pos = alien_vector[i].get_pos();
-        if(spaceship_pos.x > alien_pos.x) {
+        if (spaceship_pos.x > alien_pos.x) {
             alien_bullet_direction = true;
         }
             
@@ -234,7 +234,7 @@
         }
         
         // Delete person object if was carried by destroyed alien
-        if(alien_vector[i].get_collision_people_element() > -1) {
+        if (alien_vector[i].get_collision_people_element() > -1) {
             people_vector.erase(people_vector.begin() + 
             alien_vector[i].get_collision_people_element()); 
         }
@@ -242,7 +242,7 @@
 }
 
 void PlayEngine::draw_aliens() {
-    // Interates over alien vector and draws each new_alien object 
+    // Integrates over alien vector and draws each new_alien object 
     for (int i = 0; i < alien_vector.size(); i++) {
         
         check_alien_people_collision(i);
@@ -263,7 +263,7 @@
 
 
 
-// Explotion Control -----------------------------------------------------------   
+// Explosion Control -----------------------------------------------------------   
 
 void PlayEngine::create_explosion(Vector2D destroyed_position) {
     // Explosion object
@@ -278,17 +278,18 @@
     // Plays explosion sound if sound fx on
     if (sound_fx_ == on) {
         pad.tone(40,0.1);
+        printf("playing Explosion\n");
     }
 }
 
 void PlayEngine::draw_explosions() {
-    // Interates over expoltion vector and draws each explosion object then 
-    // deleted object after set size
+    // Integrates over explosion vector and draws each explosion object 
+    // then deleted object after set size
     for (int i = 0; i < explosion_vector.size(); i++) {
         explosion_vector[i].draw_explosion(lcd);
         
         // Delete explosion after reaches set size
-        if(explosion_vector[i].get_explosion_radius() == 8) {
+        if (explosion_vector[i].get_explosion_radius() == 8) {
              explosion_vector.erase(explosion_vector.begin()+ i);    
         }
     }
@@ -300,8 +301,8 @@
 // People Control --------------------------------------------------------------
 
 void PlayEngine::spawn_people() {
-    // Keeps number of people objects constant as people objecs are erased
-    if(people_vector.size() <= 5) {
+    // Keeps number of people objects constant as people objects are erased
+    if (people_vector.size() <= 5) {
         create_people();
     }
 }
@@ -321,13 +322,12 @@
         people_vector[i].draw_people(lcd, d_, 
         map.get_length_map(), map.get_position_x_map());  
         
-        // Errase person if at top of screen as captured by alien and alien is 
+        // Erase person if at top of screen as captured by alien and alien is 
         // set to track mode
         Vector2D people_pos =  people_vector[i].get_pos();
-        
         for (int x = 0; x < alien_vector.size(); x++) {
-        Vector2D alien_pos = alien_vector[x].get_pos();
-            if(people_pos.y < 30 && alien_pos.y < 9 &&
+            Vector2D alien_pos = alien_vector[x].get_pos();
+            if (people_pos.y < 30 && alien_pos.y < 9 &&
             alien_vector[x].get_collision_people_element() == i) {
                     
                 // Set alien who abducted person to track mode
@@ -345,14 +345,14 @@
 // Map Control------------------------------------------------------------------
 
 void PlayEngine::reset_map_timer() {
-    if(spaceship_destroyed_) {
+    if (spaceship_destroyed_) {
         reset_map_counter_++; 
         
         // Stops map movement
         d_ = CENTRE;
         
         // Reset map after set time
-        if(reset_map_counter_ == 50) {
+        if (reset_map_counter_ == 50) {
             reset_map();
         }
     }   
@@ -379,4 +379,4 @@
     for (int i = (alien_bullet_vector.size() - 1); i >= 0 ; i--) {
          alien_bullet_vector.erase(alien_bullet_vector.begin()+ i);      
     }
-}
\ No newline at end of file
+}