Ben Evans University Second Year Project. Game Called Defender.
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Fri Aug 5 2022 06:55:07 by
1.7.2