全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1591
推到 Plurk!
推到 Facebook!

請問有關鍵盤防彈跳延遲時間的消除問題

尚未結案
sauce3794
一般會員


發表:6
回覆:2
積分:1
註冊:2005-01-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-17 02:43:46 IP:61.216.xxx.xxx 未訂閱
我想用BCB寫一個炸彈超人的遊戲程式 用shape或Image當作人物來移動 可是一開始就碰到人物移動的問題 我在FORM的EVENT有寫OnKeyDown、OnKeyUp之類的函式來處理人物的移動 ; Image.Left = Image.Left - 10; 但是執行時按住 Left Arrow 鍵才發現原來鍵盤有防止因按住某鍵而發生彈跳(bunce)的延遲時間 而造成圖片移動一步之後延遲一下才連續一直走...... 這該怎麼解決呢
heavenblue
一般會員


發表:0
回覆:1
積分:0
註冊:2004-03-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-04 17:55:09 IP:61.224.xxx.xxx 未訂閱
之前寫的時候也有遇過類似的問題.. 解決的方法是設一個keydown 的flag .. 和使用settimer來處理 當OnKeyDown時.. 將keydown 設為true 然後啟動timer .. 在OnTimer時.. 判斷是否Keydown .. 如果是則移動.. 當Keyup時再設定keydown 為false 並且 killtimer .. 這是我用的方法 .. 不知道平常的做法為何~ 參考看看吧~ :)
celesta
一般會員


發表:1
回覆:1
積分:0
註冊:2004-12-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-09-04 21:59:03 IP:211.76.xxx.xxx 未訂閱
可以試試看API的GetAsyncKeyState函式 if ( GetAsyncKeyState( VK_LEFT ) < 0 ) //左鍵 if ( GetAsyncKeyState( 0x41 ) < 0 ) //A鍵 我是沒用BCB寫過...我是用API寫,不過我剛開始也是攔截WM_KEYDOWN訊息,作用應該和OnKeyDown一樣。這樣還有一個問題,如果在控制台調整鍵盤重複速度也會造成影響,變成玩家在控制台就可以調整人物移動速度...(爆) 如果用GetAsyncKeyState的話還可以檢查是否有多個按鍵同時按下 anyway, 試試看吧~ 發表人 - celesta 於 2005/09/04 22:04:57
系統時間:2024-05-03 22:16:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!