MoveSprites - Inf512-MotorolaScienceCup/gra-PANG GitHub Wiki

MoveSprites

Funkcja wywoływana przez Update przy stanie ACTIVE. Odpowiada za wywoływanie funkcji Move dla wszystkich Sprite’ów znajdujących się w tablicy. Na końcu sprawdza czy któryś z obiektów posiada stan FINISHED. Jeśli tak to usuwa go.

void Game::MoveSprites() {
    for (size_t i = 0; i < sprites.size(); i++) {
        sprites[i]->Move();
    }
    auto removed = remove_if(sprites.begin(), sprites.end(), [](Sprite* sprite) { return sprite->state == Sprite::State::FINISHED; });
    std::for_each(removed, sprites.end(), [](Sprite* sprite) { std::cout << "REMOVE:" << (int)sprite->type << " ptr:" << sprite << std::endl; });
    sprites.erase(removed, sprites.end());
}