输出后,带有ncurses库的文字并没有消失

问题描述 投票:0回答:1
void grop_goblin_shord(int cols)
{
    int messagesTicks = (2 * TICKS_PER_SEC);
    int grop_goblin_shord1,
        grop_goblin_shord2;
    if (num_lvl < 10)
    {
        grop_goblin_shord1 = rand() % 2;
        grop_goblin_shord2 = rand() % 1;
        if (grop_goblin_shord1 == grop_goblin_shord2)
        {
            if (messagesTicks > 0)
            {
                mvprintw(0, 1, "You received the goblin sword");
                while (messagesTicks >= 0)
                {
                    messagesTicks--;
                }
            }
            else if (messagesTicks <= 0)
            {
                clear();
                refresh();
            }
        }
    }
}

我尝试通过刻度数进行计数,我表示

constexpr int TICKS_PER_SEC = 60;
并在
int messagesTicks = (2 * TICKS_PER_SEC);
并从 messagesTicks 中拿走 1,当在循环中以及当文本结束时,它应该被清除,好吧,有些东西,它不会消失

c++ c++17
1个回答
0
投票

打印消息后引入'usleep'。清除前刷新屏幕

void grop_goblin_shord(int cols) { int messagesTicks = (2 * TICKS_PER_SEC); int grop_goblin_shord1, grop_goblin_shord2; if (num_lvl < 10) { grop_goblin_shord1 = rand() % 2; grop_goblin_shord2 = rand() % 1; if (grop_goblin_shord1 == grop_goblin_shord2) { if (messagesTicks > 0) { mvprintw(0, 1, "你收到了妖精剑");usleep(1000000);睡眠1秒clear();刷新(); } } } }

© www.soinside.com 2019 - 2024. All rights reserved.