[英]How to get direct keyboard input in C++?
我目前正在Windows中用C ++編寫游戲。 到目前為止一切都很好,但是我的菜單看起來像這樣:
1,往北走
2.往南走
3.東行
4,往北走
5,庫存
6,退出
插入選擇-
它工作正常,但我已經使用了一段時間,希望您可以使用向上和向下箭頭進行導航。 我將如何去做呢?
提前考慮
您是否考慮過使用控制台UI庫(例如ncurses) ?
在Windows中,您可以使用通用的kbhit()
函數。 根據是否有鍵盤擊中,此函數返回true / false。 然后,您可以使用getch()
函數讀取緩沖區中存在的內容。
while(!kbhit()); // wait for input
c=getch(); // read input
您也可以查看掃描代碼。 conio.h
包含必需的簽名。
您可以使用GetAsyncKeyState 。 它使您可以從箭頭,功能按鈕(F0,F1等)和其他按鈕直接獲得鍵盤輸入。
這是一個示例實現:
// Needed for these functions
#define _WIN32_WINNT 0x0500
#include "windows.h"
#include "winuser.h"
#include "wincon.h"
int getkey() {
while(true) {
// This checks if the window is focused
if(GetForegroundWindow() != GetConsoleWindow())
continue;
for (int i = 1; i < 255; ++i) {
// The bitwise and selects the function behavior (look at doc)
if(GetAsyncKeyState(i) & 0x07)
return i;
}
Sleep(250);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.