准确控制延迟时间

        
  在Qbasic编程中大家一般用FOR语句来实现延时功能,如:

   FOR t=1 TO 5000

   NEXT t

  这样虽然简单易行,但编出的程序运行起来有一定的不确定性。如在386和586上运行同一个含有FOR延时语句的程序,会因CPU运算速度的不同而产生不同的延时效果。这就是为什么一些老DOS游戏在PⅡ级的机器上跑得飞快的原因。为什么不利用Qbasic中自带的时间函数来实现延时控制呢?我们编制了一段小程序来实现这一功能:

   10 CLS

   20 FOR i = 1 TO 100

   30 t = INT(TIMER  10)

   ′给变量′t′赋初值

   40 DO ′进入等待循环

   50 LOOP UNTIL INT(TIMER  10) = t + 1

   ′判断是否已到等待的时间

   60 COLOR (i MOD 16)

   70 PRINT i,

   80 NEXT i

   90 COLOR 7

   END

  运行时程序将每隔0.1秒显示一个彩色数字。用户可以自己修改第50行中变量′t′的增加值,以改变间隔时间。也可以改变第30行和第50行中′10′的值,来改变等待的时间精度,如:

   ...

   30 t=INT(TIMER  5)

   40 DO

   50 LOOP UNTIL INT(TIMER  5) = t + 1

   ...

  则程序改为每隔0.2秒显示一个字符。注意此值不能太大,否则程序将进入死循环。

 

(上一页)---(下一页)