Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: GameEngine/GameEngine.cpp
- 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