c - 有 getch(); 的替代方法吗?哪个不会暂停程序?

标签 c linux ubuntu ncurses

我目前正在 ncurses 中编写一个游戏,我有一艘由用户控制的飞船和一个缓慢向下移动以杀死你的“自动化”飞船。但是,我使用的是一个包含所有内容的 while 循环,每次我使用 getch() 时,循环都会暂停并等待输入,这意味着敌人只会在用户输入后移动。

        c=getch(); //causes a pause until a button is pressed before the next action

        if(c==97) //if a is pressed, move position of '*' left
        {
            dir=-1;

        }

        if(c==100) //if d is pressed, move position of '*' right
        {
            dir=1;

        }

最佳答案

因为你正在使用 curses,只需调用 nodelayhalfdelaytimeout 来使 getch 非阻塞,或者如果没有按下任何键,它会在短暂的等待后返回。请参阅 inopts(3ncurses) 手册页。

关于c - 有 getch(); 的替代方法吗?哪个不会暂停程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44052176/

相关文章:

c++ - 使用 vlc-qt 拉伸(stretch)视频播放器?

php - 如何修复使用PHP运行的ffmpeg中的 "Unable to find a suitable output format for '/'"错误

docker 中的 Java 进程消耗的内存超过了指定的 Xmx 限制

ubuntu - 在 Ubuntu 16.04 桌面 : slurmd fails to start 上安装/模拟 SLURM

c - 为什么 "strupr"的这个实现不起作用?

c - 马里昂巴德游戏错误异或

linux - 如何从 PSD 文件中提取文本?

linux - 在从文件读取的输入中执行命令替换

docker - apt-get install apt-transport-https 在 Docker 中失败

c - 如何用C读取一个.CAP文件?