主题:[求助]关于键盘按键
飞鸟12
[专家分:2830] 发布于 2005-02-18 11:42:00
问题 1
玩过 泡泡堂 的人都知道 :进行泡泡堂游戏时,通过方向键及空格键控制游戏人物的运动,而且方向键与空格键互无干扰,请问如何实现?
问题 2
按下一个按键时,产生按压码(它可以用INKEY$检测到),当释放这个按键时,产生一个释放码,请问这个释放码有没有办法检测到?
回复列表 (共13个回复)
11 楼
飞鸟12 [专家分:2830] 发布于 2005-02-28 15:06:00
在qb45的程序的基础上,经过改进,终于 成功了!!
CLS
COLOR 4
LOCATE 4, 3: PRINT "KEY CODE= "
DO
KeyDown = INP(&H60)
LOCATE 4, 12: PRINT KeyDown
SELECT CASE KeyDown
CASE 57
LOCATE 10, 3: PRINT "KEY =SPACE,DOWN"
CASE 57 + 128
LOCATE 10, 3: PRINT "KEY =SPACE,UP "
CASE 72
LOCATE 8, 40: PRINT "KEY =up ,DOWN"
CASE 200
LOCATE 8, 40: PRINT "KEY =up ,UP "
CASE 75
LOCATE 10, 23: PRINT "KEY =left ,DOWN"
CASE 203
LOCATE 10, 23: PRINT "KEY =left ,UP "
CASE 77
LOCATE 10, 57: PRINT "KEY =right,DOWN"
CASE 205
LOCATE 10, 57: PRINT "KEY =right,UP "
CASE 80
LOCATE 10, 40: PRINT "KEY =down ,DOWN"
CASE 208
LOCATE 10, 40: PRINT "KEY =down ,UP "
CASE 1 'ESC
EXIT DO
END SELECT
LOOP
12 楼
飞鸟12 [专家分:2830] 发布于 2005-02-28 15:07:00
13 楼
qb45 [专家分:2880] 发布于 2005-02-28 16:08:00
要同时实现方向与别的键的配合,主要是在程序中来完成!
实际上,按下键的时候键盘会有一个通码 ,放开后就是这个通码加上128
比如左键按下时的通码是75,放开后就是75+128 =203
别的键也都是这样(功能键除外),所以根据有没有通码就能判断这个键到底有没有释放!
但是我为什么要用170,203呢,这个是因为我的键盘上的(除小键盘)这几个的方向键的断码都是170
我来回复