回 帖 发 新 帖 刷新版面

主题:[求助]关于键盘按键

问题 1
玩过 泡泡堂 的人都知道 :进行泡泡堂游戏时,通过方向键及空格键控制游戏人物的运动,而且方向键与空格键互无干扰,请问如何实现?

问题 2
按下一个按键时,产生按压码(它可以用INKEY$检测到),当释放这个按键时,产生一个释放码,请问这个释放码有没有办法检测到?

回复列表 (共13个回复)

11 楼

在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 楼

 

13 楼

要同时实现方向与别的键的配合,主要是在程序中来完成!
实际上,按下键的时候键盘会有一个通码 ,放开后就是这个通码加上128
比如左键按下时的通码是75,放开后就是75+128 =203
别的键也都是这样(功能键除外),所以根据有没有通码就能判断这个键到底有没有释放!
但是我为什么要用170,203呢,这个是因为我的键盘上的(除小键盘)这几个的方向键的断码都是170

我来回复

您尚未登录,请登录后再回复。点此登录或注册