用QBASIC实现背景音乐

Author: 刘树玉 Date: 1997-01-01

  在QBASIC中我们可以利用陷阱技术使你的软件具有后台演奏音乐功能,即背景音乐功能。
  下面介绍如何利用陷阱技术编程:
  1.事件设置语句:
  ON PLAY(n) GOSUB BACKGROUND
  其中PLAY为音乐演奏函数
  n为任意整数
  BACKGROUND为事件处理子程序的入口标号
  2.音乐启停控制语句
  PLAY {ON|OFF|STOP}
  ON:允许音乐演奏事件自陷
  OFF:禁止音乐演奏事件自陷
  STOP:暂停音乐演奏事件自陷
  (关于如何编写音乐的音调和节拍,请参见有关参考书,在此不再赘述。)
  子程序的返回语句用RETURN来完成,返回后,程序自动执行PLAY ON语句,我们利用这一个特点,就可以编写一个在后台循环演奏的音乐程序,在我们的程序往下执行的过程中,程序自动演奏音乐。
  例如我们想画一个圆球,不断地改变圆球的颜色的同时,在后台演奏音乐;同时,每演奏一遍音乐在屏幕上显示出演奏第几遍音乐,按任意键即可中止程序执行。
  程序清单如下:
  CLS
  SCREEN 12“设置显示模式”
  II=2 “循环变量赋初值”
  ON PLAY(3) GOSUB BACKGROUND“设置音乐事件自陷”
  PLAY ON “允许自陷”
  MUSIC$=“MBO3L8CDEFGABED” “设置演奏字符串”
  PLAY MUSIC$ “演奏指定的字符串”
  LOCATE 8,34:PRINT “按任意键停止”
  DO WHILE INKEY$=“”
  IF II>4 THEN II-1:GOTO 1
  IF II<=1 THEN II=II+1
  1 FOR I=1 TO 10000:NEXT 1 “延时语句”
  CIRCLE (310,250),60,2 “画圆”
  PAINT (310,250),II,2 “在圆内着色”
  LOOP “执行颜色循环体”
  END
  BACKGROUND:“演奏子程序”
  A%=A%+1
  LOCATE 4,34:PRINT “第”;A%;“遍音乐”
  PLAY MUSIC$
  RETURN
  如此,你编出来的程序一定是“图文并貌,声色俱佳”。