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,当在循环中以及当文本结束时,它应该被清除,好吧,有些东西,它不会消失
打印消息后引入'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();刷新(); } } } }