问题标签 [kbhit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - c++ tron Player lightcycle 单向移动
我试图让玩家 lightcycle 继续向一个方向移动而不会停止,直到玩家按下按钮将其移动到另一个方向。我不确定如何使用 kbhit 做到这一点,所以请给我一些建议!谢谢。
c - 延迟无限循环中的 C 奇怪的 kbhit() 行为
我一直在用 kbhit() 测试一些东西,并发现延迟无限循环的奇怪行为。在此代码示例中,我将循环延迟为每秒运行 30 次。
问题是,虽然循环中的第一个 if 语句工作正常,但第二个 if 语句几乎不起作用。如果在此示例中按住“a”键,则会无限期打印 HELLO。如果您按住“b”键,则几乎不会打印 HI(如果有的话)。
为什么会出现这种行为?
c - 使用 getch() 重复密钥检查的问题
我在使用使用 getch() 的函数重复密钥检查时遇到问题。
这是一个代码示例:
我知道为什么会出现问题。当一个键被按下时,kbhit 每个循环一次为真,并将 ch 设置为从缓冲区中检索到的字符。使用 IsKeyDown 时,如果等于参数,则将缓冲区 g_keybuffer 中的键设置为零,以避免键无限“向下”。这样做的问题是,如果您想检查同一个键是否多次关闭,则只会运行 IsKeyDown 的第一个实例,其余的无效,因为键的 g_keybuffer 现在为 0。
有谁知道我如何更改 IsKeyDown 以使其能够在每次循环中多次检查相同的键?我被困住了。
c - 等待最多 X 时间输入,然后继续执行程序?
您好,我正在用 C 语言创建游戏。
我希望每 0.1 秒打印一个帧。在此期间,用户可能会或可能不会使用 getch() 进行输入。
我该如何编写这样的程序?这是我可以为你们提供的工作。
我真的希望我能保持代码清晰明了
c - 将 kbhit() 与 while 循环一起使用
这是程序。
我正在用 C 语言编写一个程序,我曾经在其中kbhit()
运行一个循环,直到按下一个键。所以这里箭头"<--->"
将继续向前移动,直到按下一个键或直到它到达屏幕的最后一个像素。
我想要的是程序应该在每次按下时将 h 递增 1,并且每次'd'
按下时递减 1 'a'
。即 h++;
并h--;
运行另一个循环,直到按下一个字符。这个想法更像是 Snake 游戏,其中蛇不断向某个方向移动,直到按下某个键。请帮忙!
c - 有没有办法替换标准 C 中的 kbhit() 和 getch() 函数?
我正在尝试与控制台进行快速时间事件类型的交互,并且我设法使用 conio 库获得了它。遗憾的是,我正在从事的项目要求代码在 Windows 和 Linux 上都可以编译,我想不出改变它的方法。
我可以做些什么来获得预期的效果,或者我应该放弃这个概念吗?下面是我创建的函数的代码。
c - 我可以在终端游戏中显示实时反馈吗?
我正在尝试用 C 编写一个简单的基于终端的地牢式游戏,但我想为用户提供他们影响的各种进程的实时反馈。
我记得几年前使用过 kbhit(),但我还记得在程序的生命周期中 CPU 会达到 100%。我想完全避免这种情况。我现在在 Linux 上工作。
假设您在基于文本的冒险游戏中的地牢中。地牢被封锁了。房间里只有这么多空气。你呆在那里的时间越长,氧气就越少。我想实时报告房间内的氧气水平,同时接受用户的命令。
有没有办法做到这一点?
编辑:我的一个想法是使用两个终端窗口。命令在一个终端中执行,这些命令的结果可以写入文本文件。另一个终端将运行一个运行实时内容的程序,并定期检查同一文本文件以获取有关费率等的更新。理想情况下,我想在一个窗口中执行此操作。
c++ - 使用 gotoXY 和 kbhit 在 C++ 中移动光标
我想通过c++中的以下代码在终端中移动符号“A”的位置,但是终端关闭并且似乎没有进入for循环。我不知道我错在哪里。如果您能帮助我,我将不胜感激:
'w' 应该向上移动 's' 应该向下移动 'a' 和 'd' 左右移动
c++ - 如何在 C++ 中创建一个运行时间计数器并允许用户同时输入的循环(非阻塞用户输入)
所以,我想做的是在 C++ 中创建一个函数,允许用户在一段时间内(例如,十分钟(甚至一分钟))将任何内容输入到字符串中(并保留他们所有的东西输入,顺便说一句。我正在尝试设计一个游戏来帮助 NaNoWriMo 参与者或作者推动他们写作,所以保留一切是必不可少的),然后不允许附加任何输入。起初这听起来很容易,但五个小时的谷歌搜索证明并非如此。
首先,我认为我可以重复追加,直到时间用完或其他东西。观察:
但后来我意识到,呃,在用户按下回车之前,循环不会再次检查条件。麻烦。与我对角色的聪明想法相同。我需要一个循环来更新每个输入的字符(或每隔一秒),无论用户输入另一个字符需要多长时间。
所以,然后我想,“好吧,在每个空间停下来更新时间应该足够好,是吗?”
这是我开始发现 C++ 在解析字符串或读取输入时表现不佳的时候。我考虑过附加每个字符,因为这很容易找到一个空格,但它仍然在等待用户。
沮丧,我想知道是否有一种方法可以让程序在获取用户输入的同时同时运行,以便一旦时间用完(使用时间(空),时间过去,时间(空)并减去两个变量以获得经过的秒数) .
原来,有!(考虑到所有使用此原理的计算机程序和游戏,我知道必须有,但我对编程很陌生(我上周三学习了函数,给你一个想法),所以我不知道是什么.)
我偶然发现的第一个函数是 curses 和 ncurses,但我很快发现这对于我想做的事情来说确实不是一个可行的选择(因为我听说它做了一些很有趣的事情)。
然后我偶然发现了 kbhit,它可以识别何时按下键盘上的键。这个博客似乎很有希望,也可能是我想做的,但我不确定它是用什么语言编写的。. . 我所知道的是它不能很好地与我的 C++ IDE 配合使用。我不知道如何使它与 C++ 配合得很好。
所以,重申一下我想要的:
一个包含同时执行时间计数器和用户输入(到字符串)的循环,但在时间用完时终止(停止让用户进一步输入到字符串)。(所有这些都没有对我的程序的其余部分做有趣的事情,就像 ncurses 那样。)
另外:我运行 Windows 8(我存在的祸根)并使用 Code::Blocks 作为我的 IDE。
或者,如果你知道了,这个问题已经在某个地方得到了回答。那实际上会很棒。找不到它只会让我觉得很傻。
(以下是我沿途看过的一些地方:
(我正在尝试创建的游戏,(还不是很远;我昨晚开始玩),以防你好奇:https ://github.com/Rowan-Law/Dungeon-Crawl/blob /master/Source%20代码)
c++ - 在 Linux 上使用 kbhit() 和 getch()
在 Windows 上,我有以下代码可以在不中断循环的情况下查找输入:
但是,看到没有conio.h
,在 Linux 上实现同样事情的最简单方法是什么?