void game_state::check_bullets( void ) { for( size_t b = bullets.size(); b > 0; --b ) { for( size_t t = tanks.size(); t > 0; --t ) { if( collision( *bullets[b-1], *tanks[t-1] ) ) { spawn_explosion( bullets[ b - 1 ]->getPos() ); destroy_tank( t - 1 ); destroy_bullet( b - 1 ); break; } } } }
game_state::~game_state() { while( tanks.size() > 0 ) { destroy_tank( tanks.size() - 1 ); } while( bullets.size() > 0 ) { destroy_bullet( bullets.size() - 1 ); } while( explosions.size() > 0 ) { destroy_explosion( explosions.size() - 1 ); } }
void Bullet::animation_end() { emit destroy_bullet(this->id);//handles the bullet }