'=========================================================================== ' Subject: BOUNCING LINES Date: 06-28-96 (18:02) ' Author: Edward Blake Code: QB, QBasic, PDS ' Origin: eblake2@quebectel.com Packet: EGAVGA.ABC '=========================================================================== ' 1996 Edward Blake, Bouncing lines similar to windows screen saver mystify ' But can be more customized, up to making a multicolor rectangle ' The constants below are for customizing. DEFINT A-Z ' Make em all integers! need speed! CONST LINE1COL = 1 ' Line #1's color CONST LINE2COL = 2 ' Line #2's color CONST LINE3COL = 3 ' Line #3's color CONST LINE4COL = 4 ' Line #4's color CONST LINE1SCOL = 12 ' Line #1's interval color CONST LINE2SCOL = 11 ' Line #2's interval color CONST LINE3SCOL = 10 ' Line #3's interval color CONST LINE4SCOL = 9 ' Line #4's interval color CONST NUMLINES = 10 ' The "width" of the polygone CONST INTERVALSCOL = 2 ' make Interval after N times of repainting polygone DIM LASTLINEX(NUMLINES) DIM LASTLINEY(NUMLINES) DIM LASTLINEX2(NUMLINES) DIM LASTLINEY2(NUMLINES) DIM LASTLINEX3(NUMLINES) DIM LASTLINEY3(NUMLINES) DIM LASTLINEX4(NUMLINES) DIM LASTLINEY4(NUMLINES) SCREEN 12 XD = 1 YD = 2 XD2 = 3 YD2 = 4 XD3 = 5 YD3 = 6 XD4 = 7 YD4 = 8 X = 320 Y = 241 X2 = 320 Y2 = 241 CLS DO FOR I = 1 TO INTERVALSCOL X = X + XD Y = Y + YD X2 = X2 + XD2 Y2 = Y2 + YD2 X3 = X3 + XD3 Y3 = Y3 + YD3 X4 = X4 + XD4 Y4 = Y4 + YD4 LINE (X, Y)-(X2, Y2), LINE1COL LINE (X, Y)-(X4, Y4), LINE2COL LINE (X2, Y2)-(X3, Y3), LINE3COL LINE (X3, Y3)-(X4, Y4), LINE4COL IF X >= 640 THEN XD = -INT(RND * 5) IF X <= 0 THEN XD = INT(RND * 5) IF Y >= 480 THEN YD = -INT(RND * 5) IF Y <= 0 THEN YD = INT(RND * 5) IF X2 >= 640 THEN XD2 = -INT(RND * 5) IF X2 <= 0 THEN XD2 = INT(RND * 5) IF Y2 >= 480 THEN YD2 = -INT(RND * 5) IF Y2 <= 0 THEN YD2 = INT(RND * 5) IF X3 >= 640 THEN XD3 = -INT(RND * 5) IF X3 <= 0 THEN XD3 = INT(RND * 5) IF Y3 >= 480 THEN YD3 = -INT(RND * 5) IF Y3 <= 0 THEN YD3 = INT(RND * 5) IF X4 >= 640 THEN XD4 = -INT(RND * 5) IF X4 <= 0 THEN XD4 = INT(RND * 5) IF Y4 >= 480 THEN YD4 = -INT(RND * 5) IF Y4 <= 0 THEN YD4 = INT(RND * 5) LASTLINEX(NUMLINES) = X LASTLINEY(NUMLINES) = Y LASTLINEX2(NUMLINES) = X2 LASTLINEY2(NUMLINES) = Y2 LASTLINEX3(NUMLINES) = X3 LASTLINEY3(NUMLINES) = Y3 LASTLINEX4(NUMLINES) = X4 LASTLINEY4(NUMLINES) = Y4 FOR T = 0 TO NUMLINES - 1 LASTLINEX(T) = LASTLINEX(T + 1) LASTLINEY(T) = LASTLINEY(T + 1) LASTLINEX2(T) = LASTLINEX2(T + 1) LASTLINEY2(T) = LASTLINEY2(T + 1) LASTLINEX3(T) = LASTLINEX3(T + 1) LASTLINEY3(T) = LASTLINEY3(T + 1) LASTLINEX4(T) = LASTLINEX4(T + 1) LASTLINEY4(T) = LASTLINEY4(T + 1) NEXT T LINE (LASTLINEX(0), LASTLINEY(0))-(LASTLINEX2(0), LASTLINEY2(0)), 0 LINE (LASTLINEX(0), LASTLINEY(0))-(LASTLINEX4(0), LASTLINEY4(0)), 0 LINE (LASTLINEX2(0), LASTLINEY2(0))-(LASTLINEX3(0), LASTLINEY3(0)), 0 LINE (LASTLINEX3(0), LASTLINEY3(0))-(LASTLINEX4(0), LASTLINEY4(0)), 0 NEXT I LINE (X, Y)-(X2, Y2), LINE1SCOL LINE (X, Y)-(X4, Y4), LINE2SCOL LINE (X2, Y2)-(X3, Y3), LINE3SCOL LINE (X3, Y3)-(X4, Y4), LINE4SCOL LOOP