应用QBASIC编制动画一例
GET和PUT的应用格式如下:
GET (X1,Y1)-(X2,Y2),数组名
PUT (X,Y),数组名[,粘贴格式]
其中粘贴方式有如下五种方式:
PSET:照原样粘贴
PRESET:原图取反后粘贴
AND:原图与现图作与运算后,保留共同部分,再显示
OR:原图与现图作或运算后,保留现图(背景),再显示
XOR:原图与现图作异或运算后,清除原图,保留现图,再显示
其余参数的设置参见有关书籍,在此不再详述。
假如有一字符串“清屏模拟显示”,从屏幕的左端显示出来,逐渐向右移动,到屏幕右端后弹回,又向左移动,来回循环移动,每循环一次,屏幕的背景变换一次颜色,颜色循环14次以后,程序停止运行。操作步骤如下:
1.定义数组的IG(N)为整数型。
2.利用UCDOS的特殊显示功能造出一个40×40点阵的汉字串,并存储到数组IG(N)和文件F.DAT中,以备其它程序调用。
3.读数据文件F.DAT到数组IG(N)中,如果在同一个程序中有步骤2的话,则可以省略这一步。
4.设置循环体,改变背景的颜色。
程序清单如下:
N=3184 “定义数组的大小”
DIMIG(1 to N) AS INTEGER “定义数组”
OPEN "LPT3:" FOR OUTPUT AS #2
LOCATE 10,10:PRINT #2,CHR$(14);“[{-160|70@40,40)1(4清屏模拟显示}
CLOSE #2
GET(160,72)-(499,108),IG “读取数据到数组IG中”
PUT(100,200),IG
OPEN "F.DAT" FOR OUTPUT AS #2 “将数组写到磁盘文件F.DAT中”
FOR I=1 TO N
PRINT #2,IG(I)
NEXT I
CLOSE #2
OPEN "F.DAT" FOR INPUT AS #1 “打开数据文件F.DAT”
FOR I=1 TO N
INPUT #1,IG(I)“读数据到数组IG中”
NEXT I
CLOSE #1
FOR C=1 TO 14 “设置颜色循环体”
PAINT (10,10),C “给屏幕着底色”
X=0
FOR I=1 TO 298 “从左到右显示”
X=X+1
PUT (X,100),IG,PSET
NEXT I
X=298
FOR I=310 TO 14 STEP -1 “从右到左显示”
X=X-1
PUT (X,100),IG,PSET
NEXT I
NEXT C
END
同理,依上述方法还可以编制出各种各样的动画,诸如弹性碰撞的小球、星星、跳跃前进的画面等等,只要你巧加利用,一定会使你的程序锦上添花。