【问题标题】:Simple animation causes flickering screen in c++简单的动画导致c ++中的闪烁屏幕
【发布时间】:2012-03-10 23:46:39
【问题描述】:

我正在尝试使用以下代码来模拟一个简单的文本加载动画:

for (int i = 0; i < 15; i ++)
{
    system("cls");

    cout<<disp;
    disp += ".";
    Sleep(100);
}
system("cls");

但是,当我这样做时,屏幕一直在闪烁。有没有更好的方法可以做到这一点?

谢谢。

【问题讨论】:

    标签: c++ windows animation


    【解决方案1】:

    这似乎与您的代码尝试做的事情相同:

    system("cls");
    for (int i=0; i<15; ++i)
    {
        cout << '.';
        Sleep(100);
    }
    system("cls");
    

    【讨论】:

    • 谢谢,现在减少了,但是在开始和结束时仍然闪烁。有没有其他替代品或者我只需要使用它?
    • @rtuner:如果你想完全摆脱它,你需要离开控制台(不再使用 cout 或 printf)并开始使用某种图形 API缓冲。这不会是一个快速的解决方案,从你迄今为止所做的事情来看,这是一个陡峭的学习曲线,但它是值得的。这是一个很棒的库:sfml-dev.org
    • @rtuner:其实只要把system("cls")去掉就可以消除闪烁了。但是当然,屏幕不会被清除。屏幕清除是您程序的重要组成部分吗? (顺便说一句,它非常不便携,但我意识到在你的阶段,你现在可能不太关心这个)
    猜你喜欢
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    • 2014-10-14
    • 1970-01-01
    • 2021-02-09
    • 2011-02-26
    相关资源
    最近更新 更多