Usleep打破了ncurses运动中的密钥

时间:2013-05-29 23:42:16

标签: c++ ncurses

我正在用ncurses编写一个炸弹人游戏,但我遇到了麻烦。

我希望玩家能够持续按住持续动作。

它在getch()的非阻塞模式下工作正常,但只有在我实现等待游戏循环之前。

    struct timeval start, end;
long mtime, seconds, useconds;    
long frame = 5000; /* usec */
while ( m_state == STATE_PLAYING ) {
    /* tick driving */
    gettimeofday(&start, NULL);
    Tick();
    Draw();

    gettimeofday(&end, NULL);

    seconds  = end.tv_sec  - start.tv_sec;
    useconds = end.tv_usec - start.tv_usec;
    mtime = ((seconds) * (1000 * 1000) + useconds ) + 500;

    if(tickdriven) usleep( frame - mtime );
}

在勾选中我加载密钥然后处理它们。但是,如果我将tickdriven设置为true,它会设置一个保持键功能:(突然我必须再次按下键才能继续移动。所以我的问题是:为什么uspeep会设置保持键功能,我该如何修复它?:(

0 个答案:

没有答案