Окно в SFML отрисовывает те элементы, которые вы в него добавили с помощью window.draw()
. При помощи window.clear();
окно очищает очередь на отрисовку - удаляет все объекты из окна (из очереди). Если объект больше не нужен, просто не добавляйте его на отрисовку.
Основной цикл для SFML выглядит примерно так:
while (window.isOpen()) {
// обработка событий окна
window.clear(); // очистка очереди на отрисовку - удаляет из окна все элементы
window.draw(object); // добавление объектов в очередь на отрисовку
window.display(); // отображение окна
}
Когда объектов в окне много, обычно держат свой массив указателей на объекты, которые нужно отрисовать - std::vector<sf::Drawable*> my_draw_objects;
. И в цикле добавляют в окно. Удалив указатель на элемент из своего массива, он не попадет на отрисовку в окно.
std::vector<sf::Drawable*> my_draw_objects;
{
window.clear(); // очистка очереди на отрисовку
for(auto object : my_draw_objects)
window.draw(object); // добавление объектов в очередь на отрисовку
window.display(); // отображение окна
}