我正在创建一个游戏,我希望如果用户点击F10或任何其他功能键,那么程序应该结束。
答案 0 :(得分:3)
有点不好,你没有得到这个答案......
首先,您必须找到您希望退出的任何键的ASCII值。
要做到这一点,要么使用chr $,asc()和输入创建一个简单的程序来解决它。或者只是快速搜索它。
你想要做的是在游戏区你正在使用inkey $(我假设你是这样,因为大多数游戏都有移动而且几乎是必需的)并且只检查被按下的键以及其他所有关键。 例如:
简单的动作游戏:
10 cls
20 K$=inkey$
30 if K$="a" then REM move left
40 if K$="d" then REM move right
50 if K$= EXITKEY then REM EXIT
60 goto 20
- 也很抱歉,如果这是不正确的方法,但这应该有效......我在GW上仍然有点生锈
答案 1 :(得分:1)
我认为你正处于某种BASIC程序的中间,你想“退出”,退出这个?
按ENTER
进入BLANK空间并输入system
,再次点击ENTER
即可离开!
答案 2 :(得分:0)
对于未来的搜索者,这个答案提供了额外的背景,以告知设计退出BASIC程序的机制。
对于一些设计简单的BASIC程序,退出的唯一方法是Control-C或Control-Break。但是一些模拟器(例如DOSBox)不会以将它呈现给底层程序的方式处理Control-C。
在某些系统上,you can press Ctrl-ScrollLock as a workaround:
对于那些感兴趣的人我有一个小技巧:使用Ctrl-ScrollLock,它 表现得像Ctrl-Break,其中运行着许多BASIC解释器 DOSBox中。它适用于GW-BASIC,BASICA(通常捆绑兼容 像Compaq&s;),QBasic,QuickBasic和其他可能的DOS 开发"工作台"接口
这个工作的原因有点复杂,所以只能阅读if 你有兴趣了解。 DOSBox没有真正的Ctrl-Break 处理像真正的DOS,这是硬件和 软件中断和内部标志。但是,DOS Ctrl-Break handler只是一个默认的处理程序,都以INT 9开头,即 键盘硬件中断。许多程序开发应用程序挂钩 在DOS看到它们之前的INT 9和拦截键,所以他们可以做到 自己处理。毕竟,Ctrl-Break的DOS默认行为是 终止应用程序,这通常不是想要的。 INT 9 处理程序代码通过检查来查找正在按下的Control键 在BIOS数据中移位状态字节,然后从中读取扫描码 键盘数据端口60h。 ScrollLock的扫描码是46h,而且 Ctrl-Break的扫描码是一个2字节"转义" E0h 46h的序列, 其中E0h是转义码。似乎处理程序例程经常出现 他们处理转义码并不是非常严谨,只是 删除它,所以Ctrl-ScrollLock最终与Ctrl-Break一样工作。
答案 3 :(得分:0)
当在Qbasic中按下功能键时,此代码片段退出程序:
DO
DO
' read keyboard
X$ = INKEY$
IF LEN(X$) THEN
EXIT DO
END IF
LOOP
IF LEN(X$) = 2 THEN
x = ASC(RIGHT$(X$, 1))
' exit program on F1 to F10
IF x >= 59 AND x <= 68 THEN
END
END IF
END IF
LOOP