我正在用汇编语言编写游戏代码,其中恐龙的运动取决于用户按下的键。我以某种方式实现了我的代码,即如果用户按下空格键,则程序应终止,并且恐龙在按下“ a”时应向正确的方向移动。但是我面临的一个问题是,在第一次按下任何键之后,程序将不查找其他任何被按下的键,这表明它一次又一次地按下了第一次按下的键。如何解决?
我正在使用mov ah,01h和int 16h的功能,该功能返回al寄存器中按下键的ascii。之后,我将其与所需的ascii键进行了比较,但是只有在第一次按下任何键时,这16h的表现才不错。
label2:
mov ah, 1h
int 16h
mov keyboardkey, al ;keyboardkey is variable for storing ascii of key pressed
.IF( keyboardkey == 32 )
ret
.ENDIF
.IF( keyboardkey == 97 )
mov bx, startingXaxis
add bx, 10
mov startingXaxis, bx
call drawdinosaour
.ENDIF
.IF (keyboardkey == 98 )
mov bx, startingXaxis
sub bx, 10
mov startingXaxis, bx
call drawdinosaur
.ENDIF
call delay ;this function passes the program for 1/4 second
jmp label2
我原以为,每当我按下空格键时,该程序都会终止,但它只会选择第一次按下的键,此后它将继续根据该第一个键进行操作,而不会寻找此后按下的任何键。 >
我正在用汇编语言编写游戏代码,其中恐龙的运动取决于用户按下的键。我已经以某种方式实现了我的代码,如果用户按下空格键,则...
int 0x16, ah =0x01
不会从缓冲区中删除键,并且(如果未按任何键,则不会等到用户按下一个键。