作者teexit (獃獃)
看板GameDesign
標題Re: [問題] XNA 關於鍵盤按鍵偵測的疑惑
時間Mon Apr 26 13:38:42 2010
※ 引述《QQ29 (我愛阿蓉)》之銘言:
: 以上
: 謝謝各位
我不確定我現在說的能不能回答到你的問題。
我如果沒有看錯的話,你應該是問說怎麼處理鍵盤只按下A鍵
然後不會連發!?
你直接準備兩個KeyBoardState oldKeyboard, currentKeyboard;
然後在update那邊
oldKeyboard = currentKeyboard;
currentKeyboard = KeyBoard.GetState();
然後就可以避免掉那個情況了...
然後D代表的是數字的那個英文開頭。
我覺得你去抓取keys有時候沒這麼好用...
我基本上都是直接用iskeypress。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.210.74
1F:推 wupojung:推~~ 去圖書館借一本 XNA的書都有類似的sample ... 04/27 14:24
2F:→ wupojung:網路上 google 也有喔 ^^ 04/27 14:25
3F:推 QQ29:可是我現在卡在 該怎麼判別大小寫 和數字= = 04/27 18:58
4F:→ teexit:數字就D1 = 1 D2 =2我想上面就說了 至於大小寫 04/28 14:32
5F:→ teexit:你可以檢查看看CapsLock是否被壓下,如果是接下來就是大寫 04/28 14:32
6F:→ teexit:同理,按下SHIFT打字也是大寫 最值觀的做法就是這樣做 04/28 14:33
7F:推 QQ29:不管有沒有按 他都是顯是大寫耶 04/28 15:11
8F:→ QQ29:我是直接拿他的key型態來秀 可是也找不到什麼轉換的方法 04/28 15:12
9F:→ teexit:他預設就是指寫大寫阿... 你要怎麼判斷就是看你怎麼處理 04/28 18:34
10F:推 QQ29:所以其實全部的input都還要自己parse喔...好麻煩的樣子 04/28 23:22
11F:→ teexit:我並不認為會很麻煩阿...也許有別的做法 目前我只到是這樣 04/29 12:51
12F:→ help0430:QQ29整個搞錯了吧~Keys是enum,表示哪個鍵被按下 04/30 10:38
13F:→ help0430:不是你按下去得到的文字 04/30 10:39
14F:→ help0430:在Update裡面呼叫GetKeyState取得當下鍵盤狀態 04/30 10:40
15F:→ help0430:Update預設每秒呼叫60次,你就每秒偵測到60次按下阿 04/30 10:41