Ben Evans / Mbed 2 deprecated Defender_Game

Dependencies:   mbed

Revision:
20:febd920ec29e
Parent:
19:1bc0a2d22054
Child:
21:f7d7834e3af1
diff -r 1bc0a2d22054 -r febd920ec29e GameEngine/GameEngine.cpp
--- a/GameEngine/GameEngine.cpp	Sun May 03 18:15:58 2020 +0000
+++ b/GameEngine/GameEngine.cpp	Mon May 04 10:47:06 2020 +0000
@@ -13,6 +13,7 @@
     lcd.init();
     spaceship.init();
     map.init(pad);
+    create_alien();
 }
 
 void GameEngine::gameplay_loop() {
@@ -28,6 +29,7 @@
     // Draws 
     spaceship.draw(lcd);
     map.draw_map(lcd, d_);
+    draw_aliens();
     draw_bullets();
 
     // refresh's screen
@@ -45,15 +47,43 @@
         
         new_bullet.init(spaceship.get_pos(), spaceship.get_spaceship_sprite_direction());
         
-        // Stores bullet object on vector 
+        // Stores bullet object in vector 
         bullet_vector.push_back(new_bullet);
-    }   
+    }
+}
+
+void GameEngine::create_alien(){
+    // Alien object
+    Alien new_alien;
+    
+    new_alien.init();
+    
+    // Stores alien object in vector 
+    alien_vector.push_back(new_alien);
 }
 
 void GameEngine::draw_bullets(){
-    // interates over bullet vector and get each new_bullet draw it's self with their updated postion 
+    // interates over bullet vector and get each new_bullet object to draw its self and move
     for (int i = 0; i < bullet_vector.size(); i++){
         bullet_vector[i].draw_bullet(lcd);
+        
+        // deletes bullet object after bullet is out of view of paceship    
+        int bullet_delete_counter = bullet_vector[i].get_bullet_delete_counter();
+        if(bullet_delete_counter >> 5){
+             bullet_vector.erase(bullet_vector.begin()+ i);
+        }
     }
 }
 
+void GameEngine::draw_aliens(){
+    // interates over alien vector and get each new_alien object to draw its self
+    for (int i = 0; i < alien_vector.size(); i++){
+        alien_vector[i].draw_alien(lcd);
+        
+        // Deletes bullet and alien if collision detected
+        if (alien_vector[i].check_collision(bullet_vector[i])){
+            bullet_vector.erase(bullet_vector.begin()+ i);  
+            alien_vector.erase(alien_vector.begin()+ i);          
+        }
+    }
+}
\ No newline at end of file