如何随时退出gw基本程序?

时间:2013-10-30 17:11:07

标签: basic gw-basic

我正在创建一个游戏,我希望如果用户点击F10或任何其他功能键,那么程序应该结束。

4 个答案:

答案 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