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/PlayEngine.cpp
- 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
+}