如何在 SFML 程序中减慢显示变化?

问题描述 投票:0回答:0

我写了一个简单的 SFML 程序,我想看看有什么变化以及具体的排序算法是如何工作的。我怎样才能做到这一点。我尝试过多线程,但我可能不太了解如何使用它。你能帮我吗?我不想使用多线程解决方案。我是编程新手,我的英语不如我想的那么好,但我正在尽力而为。

这是我的代码。

for (int i = 0; i < shapes.size() - 1; i++) 
{
        for (int j = 0; j < shapes.size() - i - 1; j++) 
{
            if (shapes[j].getSize().y > shapes[j + 1].getSize().y && shapes[j].getPosition().x < shapes[j + 1].getPosition().x) 
{
                float changeSizeY = shapes[j].getSize().y;
                shapes[j].setFillColor(sf::Color::Red);
                shapes[j + 1].setFillColor(sf::Color::Red);
                shapes[j].setSize(sf::Vector2f(shapes[j].getSize().x, shapes[j + 1].getSize().y));
                shapes[j].setPosition(sf::Vector2f(shapes[j].getPosition().x, 1000 - shapes[j].getSize().y));
                shapes[j + 1].setSize(sf::Vector2f(shapes[j + 1].getSize().x, changeSizeY));
                shapes[j + 1].setPosition(sf::Vector2f(shapes[j + 1].getPosition().x, 1000 - shapes[j + 1].getSize().y));

                target.clear();

                for (sf::RectangleShape& shape : shapes) {
                    target.draw(shape);
                }

                target.display();

                shapes[j].setFillColor(sf::Color::White);
                shapes[j + 1].setFillColor(sf::Color::White);
            }
        }
}
c++ sfml
© www.soinside.com 2019 - 2024. All rights reserved.