看板 GameDesign 關於我們 聯絡資訊
※ [本文轉錄自 C_Sharp 看板] 作者: QQ29 (我愛阿蓉) 看板: C_Sharp 標題: [問題] XNA 關於鍵盤按鍵偵測的疑惑 時間: Mon Apr 26 12:54:12 2010 XNA 關於鍵盤按鍵偵測 目前有些觀念想釐清一下~~ KeyboardState CurrentKeyBoardInput = Keyboard.GetState(); Keys[] keys = CurrentKeyBoardInput.GetPressedKeys(); 如果只是單純GetPressedKeys 假如按下"A" 會有好幾個A在GetPressedKeys那個queue裡 面 我找一些sample code有一種作法是 用timespan去計算間隔 希望不要在timespan設定的時間內再次去 Keyboard.GetState(); 這樣效果可以按著A不放 會有AAAAAAAAAAAAAAAA印出來 但在使用上感覺不是很順~ 另一個作法是 我自己看XNA document的範例改成 Update裡 Keys[] keys = CurrentKeyBoardInput.GetPressedKeys(); if (OldKeyBoardInput != CurrentKeyBoardInput) { .............................................. } OldKeyBoardInput = CurrentKeyBoardInput; 這樣竟然keys 就只會得到一個input 我不懂那個if到底怎麼判斷的..... 他會發生!= 的情形是因為 平常沒按 當有 KeyDown就發生!= 然後連續的press 都算是同一個state所以都是 == 所以他只會抓第一個A? ========================= 第一種做法 我是覺得有時候會 漏掉key 有時不靈敏可能是因為我定死 interval 所以請教 第二種作法的話 可否改成模擬 A按著不放的情況呢? 另外我發現 key得到的都是大寫字母.....我該怎麼判斷使用者是輸入大寫還是小寫呢?? 還有輸入數字 都會變成D1 D2 D3 多了個D@@ 以上 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.147.15.66 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.147.15.66 ※ 編輯: QQ29 來自: 122.147.15.66 (04/26 13:10)
darkflier:key down跟key press兩個是不一樣的 04/27 00:04
QQ29:但這樣不能偵測連續按下耶@@ 04/27 01:01