[問題] XNA 關於鍵盤按鍵偵測的疑惑

看板GameDesign (遊戲設計)作者 (我愛阿蓉)時間15年前 (2010/04/26 12:54), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/2 (看更多)
※ [本文轉錄自 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)

04/27 00:04, , 1F
key down跟key press兩個是不一樣的
04/27 00:04, 1F

04/27 01:01, , 2F
但這樣不能偵測連續按下耶@@
04/27 01:01, 2F
文章代碼(AID): #1BrHoGsW (GameDesign)
文章代碼(AID): #1BrHoGsW (GameDesign)