Re: [問題] 請問有辦法延遲KeyEvent的讀取速度嗎?

看板java作者 (骨頭)時間18年前 (2007/12/09 16:16), 編輯推噓3(301)
留言4則, 4人參與, 最新討論串4/6 (看更多)
※ 引述《TonyQ (骨頭)》之銘言: : 標題: Re: [問題] 請問有辦法延遲KeyEvent的讀取速度嗎? : 時間: Sat Dec 8 20:26:41 2007 : : ※ 引述《TonyQ (骨頭)》之銘言: : : 推 yorjing:第一個是counter%base=n嗎? 12/08 19:18 : : 舉個最簡單的SAMPLE : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 220.132.59.247 : 推 yorjing:Thread.sleep(num)是放/*do something*/這邊嗎? 12/09 00:22 : 推 yorjing:可是如果用sleep delay的是運算而不是讀取............ 12/09 00:28 : 推 yorjing:好像只要是加sleep在KeyOnDown之下就會造成運算延遲 12/09 00:34 你應該把你的問題在講清楚點才對, 如果你是要用sleep ,sleep是"延後執行"這個key的動作, 而不是"忽略這個key"的動作,所以並不會減少"整體key的數量"。 在這個情況下,你應該要選擇的是queue法, 透過一個獨立的thread去進行key的行為,並且透過固定時間來執行。 他的事件模型大概長這樣 Delaytime =1000 (ms) ┌─key listener────┐ ┌ Excute queue ─────┐ │ listening...←┐ │ │list ┌────┐ │ │ ↓ │ │(add key) ┌──┘ sleep │ │ onKeyDown→→→→→→→→→→→→→→┘ │ (delaytime) │ │ ↓ │ │ │ ↓ yes ↑ │ │ └─────┘ │ │ isEmpty? ─→──┤ │ │ │ │ │no │ │ └───────────┘ │ ↓ │ │ │ Get key │ │ │ delete key in list │ │ │ ↓ │ │ │ do something │ │ │ └→──────┘ │ └─────────────┘ ──────────────────────────────── 另一個 我所謂log法的東西,則是 "我delay期間的事件我都不要" 比方說,我按住空白鍵假設兩秒會發十次, 但是實際上只有間隔一秒的兩次是實際有效的 。 那我就設一個時間,上一次按鍵到這次按鍵時, 必須要到一定的時間才列入有效的執行,否則我就當作沒看到。 這個可以減少/過濾多餘的按鍵事件。 他的大概模型是很單純也很簡單,如下面所述 假設delaytime(int) 為1000 (單位:ms) ↓ 紀錄起始(lasttime) ↓ ┌─────── key action ─────────────┐ │listening for key... ←───────┐ │ │ ↓ │ │ │ onKeydown │ │ │ ↓ │ │ │ 取得時間(nowtime) ↑ │ │ ↓ no │ │ │ (nowtime-lasttime) > delaytime ──┤ │ │ │yes │ │ │ ↓ │ │ │ lasttime=nowtime │ │ │ do action ↑ │ │ └─────────────┘ │ └──────────────────────────┘ ps.雖然說應該是我多心,不過還是提醒一下, lasttime要作為listener的成員,不然每次onKeydown會無法保留紀錄。 -- 這些是我過去在做小遊戲的經驗啦, 不是甚麼很專業的東西,但應該堪用就是了... --  ▄▅▆▇███▇▆▅▄▃        ╰┼╯─╮ ╮         ◥███████████◣       ╰┼╯=│=│         ◥██████───────    *. ╯  ╯ ╯ の 物 語 .*  ◥███████──────◣ ~ ◢◣             ◢◣  ◥██████───────◤   ◥◤  空白的世界.翼 ◥◤  ◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂telnet://tony1223.no-ip.info -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.59.247 ※ 編輯: TonyQ 來自: 220.132.59.247 (12/09 16:21) ※ 編輯: TonyQ 來自: 220.132.59.247 (12/09 16:35)

12/09 17:43, , 1F
打那麼多,要收精華區也不是,不收精華區也不是...
12/09 17:43, 1F

12/09 18:26, , 2F
相信我 我跟你的心情是差不多的...XD
12/09 18:26, 2F

12/09 19:00, , 3F
推專業流程圖 XDDDD
12/09 19:00, 3F

12/10 09:42, , 4F
推+1
12/10 09:42, 4F
文章代碼(AID): #17MwHw0E (java)
討論串 (同標題文章)
文章代碼(AID): #17MwHw0E (java)