我正在研究用於Linux系統的CHIP-8仿真器。據我瞭解,我需要從(任意)16個鍵獲得鍵盤輸入,並將它們映射到一個十六進制鍵盤。一旦我得到輸入,我沒有麻煩將它們映射到16個CHIP-8鍵。如何確定C++中的按鍵操作
但是,我不知道如何真正知道是否按下了一個鍵。我相信Java我會使用keylistener,但是在C++中找不到類似於Linux的任何東西。有沒有一種方法可以告訴我在任何特定時間按下了哪些鍵(如果有的話)?像我可以調用的getKeyState函數?
在此先感謝。
我正在研究用於Linux系統的CHIP-8仿真器。據我瞭解,我需要從(任意)16個鍵獲得鍵盤輸入,並將它們映射到一個十六進制鍵盤。一旦我得到輸入,我沒有麻煩將它們映射到16個CHIP-8鍵。如何確定C++中的按鍵操作
但是,我不知道如何真正知道是否按下了一個鍵。我相信Java我會使用keylistener,但是在C++中找不到類似於Linux的任何東西。有沒有一種方法可以告訴我在任何特定時間按下了哪些鍵(如果有的話)?像我可以調用的getKeyState函數?
在此先感謝。
您的程序可能會從標準輸入中讀取字符。
您可以使用fgets()
庫函數來執行讀取。
見,例如:
如果您確實也想做其他事情,並假裝按鍵是例如在芯片仿真器中某些「硬件」中的中斷或輪詢事件,這並不是特別有用。 –
有了這個教程ncurses
。 NCURSES Programming HOWTO。我已經確認,在我的MacBook Pro上,使用Xcode命令行工具安裝的Mavericks 10.9.1,ncurses.h
是curses.h
的符號鏈接,均位於/usr/include
。這是NCURSES Introduction page。
我還沒有自己創建特定的類。但是,有些搜索/dev/input/eventX
(其中X似乎爲零或一個)會發現這兩個單獨的帖子:Read from /dev/input和linux keypress events。
這是一個GUI或命令行應用程序?在命令行中,您可以使用'tcsetattr'並設置一個超時值,它允許您使用'read'樣式函數來檢查是否有輸入 - 或者使用一個庫,例如'ncurses',它具有「檢查密鑰已被按下「。 –