【问题标题】:C++ key input in Windows consoleWindows 控制台中的 C++ 键输入
【发布时间】:2011-01-15 19:59:28
【问题描述】:

我目前正在 Windows 中开发各种 console 游戏,使用 cin 的常规输入无法真正运行。

我该怎么做(以一种简单的方式,只使用 MSVC 中可用的标准 Windows 库):

  • 让程序等待(特定?)按键并返回按键 ID(它必须适用于包括箭头键在内的所有按键)

  • 在实时游戏期间检查用户最后一次按下的键,以及自上次检查后是否有任何键按下。

如果您可以为您的解决方案包含一个简短的示例程序,那将非常有帮助

【问题讨论】:

  • “如何用土豆给自行车轮胎充气?” cin 不是为游戏设计的 - 使用 Windows API。
  • “如何用土豆给自行车轮胎充气?” - 我没有问任何关于我应该如何使用 cin 来创建控制台游戏的问题。我想阻止关于将 cin 用于基于文本的游戏而不是任何更复杂的东西的建议。不过,感谢您提供非常有用的评论。

标签: c++ windows input


【解决方案1】:

我有你需要的。

在这里享受朋友: C++ source

这几乎是不言自明的,但如果您有任何疑问,我的电子邮件是 jacobossm@gmail.com

【讨论】:

  • 即使控制台窗口没有焦点也会触发吗?
【解决方案2】:

AFAIK 你不能使用标准的 C 运行时来做到这一点。您将需要使用诸如 Win32 函数 GetAsyncKeyState 之类的东西。

【讨论】:

  • GetAsyncKeyState 全局读取,即使应用程序不在焦点上。它阻止了我的 AV,因为它使应用看起来像键盘记录器。
【解决方案3】:

您需要 Windows 控制台 API,例如 PeekConsoleInput

【讨论】:

    猜你喜欢
    • 2014-06-19
    • 2011-11-23
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    相关资源
    最近更新 更多