Ben Evans / Mbed 2 deprecated Defender_Game

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers CheckAlienCollision.cpp Source File

CheckAlienCollision.cpp

00001 #include "CheckAlienCollision.h"
00002 
00003 bool CheckAlienCollision::check_alien_collision(Alien alien) {
00004     bool collision = false; 
00005     Vector2D alien_pos = alien.get_pos();
00006     
00007     // Checks collision of alien and sprite
00008     if (check_top_right(alien, alien_pos)) {
00009         collision = true;
00010     }else if (check_top_left(alien, alien_pos)) {
00011         collision = true;
00012     }else if (check_bottom_left(alien, alien_pos)) {
00013         collision = true;
00014     }else if (check_bottom_left(alien, alien_pos)) {
00015         collision = true;
00016     }
00017     alien_track = alien.get_track_flag();
00018     return collision;
00019 }
00020 
00021 bool CheckAlienCollision::check_top_left(Alien alien, Vector2D alien_pos) {
00022     bool check_collision = false;
00023     
00024     // Checks collision of top left corner of alien with sprite       
00025     if (alien_pos.x >= position_x_ &&
00026     alien_pos.x <= (position_x_ + sprite_x_length) && 
00027     position_y_ <= alien_pos.y && 
00028     alien_pos.y <= (position_y_ + sprite_y_length)) {
00029         check_collision = true;
00030         alien_collision_flag = true;
00031     }
00032     
00033     return check_collision;
00034 }
00035 
00036 bool CheckAlienCollision::check_top_right(Alien alien, Vector2D alien_pos) {
00037     bool check_collision = false;
00038       
00039     // Checks collision of top right corner of alien with sprite  
00040     if ((alien_pos.x + 7) >= position_x_ &&
00041     (alien_pos.x + 7) <= (position_x_ + sprite_x_length) && 
00042     position_y_ <= alien_pos.y && 
00043     alien_pos.y <= (position_y_ + sprite_y_length)) {
00044         check_collision = true;
00045         alien_collision_flag = true;
00046     }
00047     
00048     return check_collision;
00049 }
00050 
00051 bool CheckAlienCollision::check_bottom_left(Alien alien, Vector2D alien_pos) {
00052     bool check_collision = false;
00053     
00054     // Checks collision of bottom left corner of alien with sprite  
00055     if (alien_pos.x >= position_x_ &&
00056     alien_pos.x <= (position_x_ + sprite_x_length) && 
00057     position_y_ <= (alien_pos.y + 6)&& 
00058    (alien_pos.y + 6) <= (position_y_ + sprite_y_length)) {
00059         check_collision = true;
00060         alien_collision_flag = true;
00061     }
00062     
00063     return check_collision;
00064 }
00065 
00066 bool CheckAlienCollision::check_bottom_right(Alien alien, Vector2D alien_pos) {
00067     bool check_collision = false;
00068     
00069     // Checks collision of bottom right corner of alien with sprite      
00070     if ((alien_pos.x + 7) >= position_x_ &&
00071     (alien_pos.x + 7) <= (position_x_ + sprite_x_length) && 
00072     position_y_ <= (alien_pos.y + 6) && 
00073     (alien_pos.y + 6) <= (position_y_ + sprite_y_length)) {
00074        check_collision = true;
00075         alien_collision_flag = true;
00076     } 
00077     
00078     return check_collision;
00079 }