我正在用 C 创建一个将在终端中运行的 2D 平台游戏。我需要一种方法来注册“KEY_DOWN”和“KEY_RELEASE”事件。据我所知 getchar() 从标准输入读取,因此不能用于注册“KEY_RELEASE”事件。如果同时按下多个按键,也不能用于注册。
是否有 Mac OSX 10.10.5 C 库可以用来解决这个问题?也许是一个直接从键盘而不是终端读取输入的库?
最佳答案
所有潜在的答案都不可能是简单的:
- 如果您在终端中运行应用程序,并且缺少(如 OSX 那样)一组用于直接读取键盘状态的系统调用,则该应用程序将无法工作。
- 可用的资源描述了非终端应用程序(主要使用 Cocoa、OSX GUI,并且主要使用 ObjectiveC)。
以下是一些:
- How can I detect that the Shift key has been pressed?
- Showing how to listen to all keypresses in OS X through the Cocoa API using Python and PyObjC
- Listening for Global Keypresses in OSX
- Mouse button and keypress counter for Mac OS X
- OSX: Detect system-wide keyDown events?
供引用(Cocoa 事件处理指南):
关于c - 用C读取输入设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34357468/