[原创]键盘映射
鍵盤映射(按鍵連續操作)
映射是指按住鍵后程序連續操作。
而讀鍵是指按一次鍵程序操作。
原理:每一行映射的數值是和二進制有關的,文曲行將鍵盤映射從上倒下那一行的按鍵被按下用0/1表示,1表示沒被按下,0表示被按下,這就是為什么平時內存映射的值都是255的原因了,也就是說,當最下面一排的按鍵中有鍵被按下,則對應映射變為01111111就是127,當倒數第二排的按鍵被按下,則映射變為10111111就是191,當不在同一排的按鍵同時被按下時(同一映射區的),則處理法則也相同,即同時由1變成0如[符號][B|1][G|4][T|7]鍵被同時按下時,映射變為00000111就是7。其他以此類推。如果不是同一行的,且不屬于同一個映射,則單獨算就是了!
如:IF PEEK(188)=127 THEN GOSUB 200
就是指若按住向左鍵不放則連續運行200行的子程序。
括號內的是下表的豎行上對應的數字,所等于的值是下表橫行上對應的數字。
NC1020鍵盤映射詳表 :
██127---191--123--239--247---251
188 左---上頁---K----I---右-----?
189 =------M----J----U---下頁---?
190 。-----N----H----Y---輸入--發音
191 符號---B----G----T----P----報時
192 跳出---V----F----R---下-----F4
193 輸入法-C----D----E---上-----F3
194 中英數-X----S----W----L-----F2
195 求助---Z----A----Q----O-----F1
這個表是有規律的,127豎行對應文曲星鍵盤最底下一行的鍵,
191豎行對應倒數第二行,223對應倒數三行,239對應倒數四行,247
每行剩下的鍵,251最右邊一豎排鍵。?指沒查到。
10 X=76:Y=44
20 IF PEEK(193)=247 GOTO 70
30 IF PEEK(192)=247 GOTO 120
40 IF PEEK(188)=247 GOTO 170
50 IF PEEK(188)=127 GOTO 220
60 BEEP :GOTO 20
70 CIRCLE X,Y,4,1,0
80 Y=Y-1
90 IF Y〈 1 THEN Y=Y+80
100 CIRCLE X,Y,4,1,1
110 GOTO 20
120 CIRCLE X,Y,4,1,0
130 Y=Y+1
140 IF Y〉79 THEN Y=Y-80
150 CIRCLE X,Y,4,1,1
160 GOTO 20
170 CIRCLE X,Y,4,1,0
180 X=X+1
190 IF X〉159 THEN X=X-160
200 CIRCLE X,Y,4,1,1
210 GOTO 20
220 CIRCLE X,Y,4,1,0
230 X=X-1
240 IF X〈 1THEN X=X+160
250 CIRCLE X,Y,4,1,1
260 GOTO 20
這樣就可以通過方向鍵映射來連續控制這個小黑圓移動了。
只要映射值的橫縱兩個值均不相等,就可以同時映射,
文曲星最多可同時映射6個鍵。
就是你同時按下6個鍵都會有反應。
再轉一個帖說明一下:
[轉帖]屏幕動畫控制示例
原作者:追風
1 CLS:GRAPH:PRINT "屏幕動畫控制示例":LOCATE 3,10 :PRINT "制作:追風":LOCATE
4,10
10 PRINT "鳴謝:LP":B$=INKEY$:CLS
20 XZ=2 :XY=14 :XSD=8 :YZY=6 :YS=4 :YD=12 :N=0 :EX=176 :EY=76 :CIRCLE EX,EY,4
25 CIRCLE EX,EY,2,0,0 :XZZ=XZ :YZYY=YZY :XYY=XY :YDD=YD :YSS=YS :XSDD=XSD
30 CIRCLE XZ,YZY,2,1 :CIRCLE XY,YZY,2,1 :CIRCLE XSD,YS,2,1 :CIRCLE XSD,YD,4,1
40 FOR I=1 TO 2 STEP 0 :N=0
50 IF PEEK(195)=247 THEN GOSUB 60
51 IF PEEK(196)=247 THEN GOSUB 70
52 IF PEEK(191)=127 THEN GOSUB 80
53 IF PEEK(191)=247 THEN GOSUB 90
54 IF PEEK(199)=155 THEN POKE 199,155
55 IF N>0 THEN 123 ELSE 140
60 YZYY=YZYY+4-(YZYY>=70)*4 :YSS=YSS+4-(YSS>=68)*4 :YDD=YDD+4-(YDD>=76)
*4 :N=1 :RETURN
70 YZYY=YZYY-4+(YZYY<=6)*4 :YSS=YSS-4+(YSS<=4)*4 :YDD=YDD-4+(YDD<=12)
*4 :N=1 :RETURN
80 XZZ=XZZ-4+(XZZ<=2)*4 :XYY=XYY-4+(XYY<=14)*4:XSDD=XSDD-4+(XSDD<=8)
*4 :N=1 :RETURN
90 XYY=XYY+4-(XYY>=158)*4 :XZZ=XZZ+4-(XZZ>=146)*4 :XSDD=XSDD+4-(XSDD>=152)
*4 :N=1 :RETURN
123 CIRCLE XZ,YZY,2,1,0 :CIRCLE XY,YZY,2,1,0
125 CIRCLE XSD,YS,2,1,0 :CIRCLE XSD,YD,4,1,0
126 XZ=XZZ :YZY=YZYY :XY=XYY :YD=YDD :YS=YSS :XSD=XSDD
130 CIRCLE XZ,YZY,2,1 :CIRCLE XY,YZY,2,1 :CIRCLE XSD,YS,2,1 :CIRCLE XSD,YD,4,1
140 EXD=0 :EYD=0 :FX=INT(RND(8)*2)
150 WHILE EXD=0 AND EYD=0
160 IF EX>XSD AND FX=0 THEN EXD=-4
170 FX=INT(RND(9)*2)
180 IF EX<XSD AND FX=0 THEN EXD=4
190 FX=INT(RND(2)*2)
200 IF EY>YD AND FX=1 THEN EYD=-4
210 FX=INT(RND(1)*2)
220 IF EY<YD AND FX=1 THEN EYD=4
225 IF EX=XSD AND EY=YD THEN 280
226 IF ABS(INT(EX-XSD))<4 AND ABS(INT(EY-YD))<4 THEN 280
230 FX=INT(RND(11)*2):WEND
245 CIRCLE EX,EY,4,1,0
250 EX=EX+EXD :EY=EY+EYD
260 CIRCLE EX,EY,4,1 :CIRCLE EX,EY,2,0,0 :GOTO 300
280 BEEP:CLS:PRINT "GAME OVER":B$=INKEY$
290 END
映射是指按住鍵后程序連續操作。
而讀鍵是指按一次鍵程序操作。
原理:每一行映射的數值是和二進制有關的,文曲行將鍵盤映射從上倒下那一行的按鍵被按下用0/1表示,1表示沒被按下,0表示被按下,這就是為什么平時內存映射的值都是255的原因了,也就是說,當最下面一排的按鍵中有鍵被按下,則對應映射變為01111111就是127,當倒數第二排的按鍵被按下,則映射變為10111111就是191,當不在同一排的按鍵同時被按下時(同一映射區的),則處理法則也相同,即同時由1變成0如[符號][B|1][G|4][T|7]鍵被同時按下時,映射變為00000111就是7。其他以此類推。如果不是同一行的,且不屬于同一個映射,則單獨算就是了!
如:IF PEEK(188)=127 THEN GOSUB 200
就是指若按住向左鍵不放則連續運行200行的子程序。
括號內的是下表的豎行上對應的數字,所等于的值是下表橫行上對應的數字。
NC1020鍵盤映射詳表 :
██127---191--123--239--247---251
188 左---上頁---K----I---右-----?
189 =------M----J----U---下頁---?
190 。-----N----H----Y---輸入--發音
191 符號---B----G----T----P----報時
192 跳出---V----F----R---下-----F4
193 輸入法-C----D----E---上-----F3
194 中英數-X----S----W----L-----F2
195 求助---Z----A----Q----O-----F1
這個表是有規律的,127豎行對應文曲星鍵盤最底下一行的鍵,
191豎行對應倒數第二行,223對應倒數三行,239對應倒數四行,247
每行剩下的鍵,251最右邊一豎排鍵。?指沒查到。
10 X=76:Y=44
20 IF PEEK(193)=247 GOTO 70
30 IF PEEK(192)=247 GOTO 120
40 IF PEEK(188)=247 GOTO 170
50 IF PEEK(188)=127 GOTO 220
60 BEEP :GOTO 20
70 CIRCLE X,Y,4,1,0
80 Y=Y-1
90 IF Y〈 1 THEN Y=Y+80
100 CIRCLE X,Y,4,1,1
110 GOTO 20
120 CIRCLE X,Y,4,1,0
130 Y=Y+1
140 IF Y〉79 THEN Y=Y-80
150 CIRCLE X,Y,4,1,1
160 GOTO 20
170 CIRCLE X,Y,4,1,0
180 X=X+1
190 IF X〉159 THEN X=X-160
200 CIRCLE X,Y,4,1,1
210 GOTO 20
220 CIRCLE X,Y,4,1,0
230 X=X-1
240 IF X〈 1THEN X=X+160
250 CIRCLE X,Y,4,1,1
260 GOTO 20
這樣就可以通過方向鍵映射來連續控制這個小黑圓移動了。
只要映射值的橫縱兩個值均不相等,就可以同時映射,
文曲星最多可同時映射6個鍵。
就是你同時按下6個鍵都會有反應。
再轉一個帖說明一下:
[轉帖]屏幕動畫控制示例
原作者:追風
1 CLS:GRAPH:PRINT "屏幕動畫控制示例":LOCATE 3,10 :PRINT "制作:追風":LOCATE
4,10
10 PRINT "鳴謝:LP":B$=INKEY$:CLS
20 XZ=2 :XY=14 :XSD=8 :YZY=6 :YS=4 :YD=12 :N=0 :EX=176 :EY=76 :CIRCLE EX,EY,4
25 CIRCLE EX,EY,2,0,0 :XZZ=XZ :YZYY=YZY :XYY=XY :YDD=YD :YSS=YS :XSDD=XSD
30 CIRCLE XZ,YZY,2,1 :CIRCLE XY,YZY,2,1 :CIRCLE XSD,YS,2,1 :CIRCLE XSD,YD,4,1
40 FOR I=1 TO 2 STEP 0 :N=0
50 IF PEEK(195)=247 THEN GOSUB 60
51 IF PEEK(196)=247 THEN GOSUB 70
52 IF PEEK(191)=127 THEN GOSUB 80
53 IF PEEK(191)=247 THEN GOSUB 90
54 IF PEEK(199)=155 THEN POKE 199,155
55 IF N>0 THEN 123 ELSE 140
60 YZYY=YZYY+4-(YZYY>=70)*4 :YSS=YSS+4-(YSS>=68)*4 :YDD=YDD+4-(YDD>=76)
*4 :N=1 :RETURN
70 YZYY=YZYY-4+(YZYY<=6)*4 :YSS=YSS-4+(YSS<=4)*4 :YDD=YDD-4+(YDD<=12)
*4 :N=1 :RETURN
80 XZZ=XZZ-4+(XZZ<=2)*4 :XYY=XYY-4+(XYY<=14)*4:XSDD=XSDD-4+(XSDD<=8)
*4 :N=1 :RETURN
90 XYY=XYY+4-(XYY>=158)*4 :XZZ=XZZ+4-(XZZ>=146)*4 :XSDD=XSDD+4-(XSDD>=152)
*4 :N=1 :RETURN
123 CIRCLE XZ,YZY,2,1,0 :CIRCLE XY,YZY,2,1,0
125 CIRCLE XSD,YS,2,1,0 :CIRCLE XSD,YD,4,1,0
126 XZ=XZZ :YZY=YZYY :XY=XYY :YD=YDD :YS=YSS :XSD=XSDD
130 CIRCLE XZ,YZY,2,1 :CIRCLE XY,YZY,2,1 :CIRCLE XSD,YS,2,1 :CIRCLE XSD,YD,4,1
140 EXD=0 :EYD=0 :FX=INT(RND(8)*2)
150 WHILE EXD=0 AND EYD=0
160 IF EX>XSD AND FX=0 THEN EXD=-4
170 FX=INT(RND(9)*2)
180 IF EX<XSD AND FX=0 THEN EXD=4
190 FX=INT(RND(2)*2)
200 IF EY>YD AND FX=1 THEN EYD=-4
210 FX=INT(RND(1)*2)
220 IF EY<YD AND FX=1 THEN EYD=4
225 IF EX=XSD AND EY=YD THEN 280
226 IF ABS(INT(EX-XSD))<4 AND ABS(INT(EY-YD))<4 THEN 280
230 FX=INT(RND(11)*2):WEND
245 CIRCLE EX,EY,4,1,0
250 EX=EX+EXD :EY=EY+EYD
260 CIRCLE EX,EY,4,1 :CIRCLE EX,EY,2,0,0 :GOTO 300
280 BEEP:CLS:PRINT "GAME OVER":B$=INKEY$
290 END
總結
- 上一篇: Silverlight 2.5D RPG
- 下一篇: PHP学习之路(二)让我们开始环境搭建(