'=========================================================================== ' Subject: LINE PATTERN DESIGNS Date: 05-31-96 (16:26) ' Author: Ryan White Code: QB, QBasic, PDS ' Origin: BIGFOOT@SunBelt.Net Packet: EGAVGA.ABC '=========================================================================== ' Welcome one and all to Ryan's remade colored line moving thingie. ' Press F1 to make the colors change ' Press F2 to make the screen clear off ' Press F3 to change the coloring style ' Press F4 to change the finese of the lines <==-- try and you'll figure ' Press F5 to change the shape of the lines ' Press F10 to make the lines stop forming or make them start again ' Press ESC to quit ' Have fun and please change the code all you want DECLARE FUNCTION nnn! () DECLARE FUNCTION num! () DIM rox(16), gox(16), box(16) 'this just makes the lines style not 0 style = 1: shape = 1: grad = 1 SCREEN 12 RANDOMIZE TIMER ON KEY(1) GOSUB pp: KEY(1) ON ON KEY(2) GOSUB tt: KEY(2) ON ON KEY(3) GOSUB csty: KEY(3) ON ON KEY(4) GOSUB inc: KEY(4) ON ON KEY(5) GOSUB shpcng: KEY(5) ON ON KEY(10) GOSUB stopitnow: KEY(10) ON GOSUB pp x = INT(RND * 640) + 1: xb = num * nnn y = INT(RND * 480) + 1: yb = num * nnn a = INT(RND * 640) + 1: ab = num * nnn b = INT(RND * 480) + 1: bb = num * nnn G1 = nnn G2 = nnn 'Gravity (- or +) DO IF wannaseeit = 1 THEN GOTO notgonadoit m = x - a: N = y - b: XY = (m * m + N * N): IF XY < 10 THEN G1 = -G1: G2 = -G2 xb = xb - 100 * (G1 * m + xb / 3) / XY: yb = yb - 100 * (G1 * N + yb / 3) / XY ab = ab - 100 * (G2 * m + ab / 3) / XY: bb = bb - 100 * (G2 * N + bb / 3) / XY IF x + xb < 0 OR x + xb > 640 THEN xb = -SGN(xb) * num: yb = yb * nnn: G1 = -SGN(G1) IF y + yb < 0 OR y + yb > 480 THEN yb = -SGN(yb) * num: xb = xb * nnn: G1 = -SGN(G1) IF a + ab < 0 OR a + ab > 640 THEN ab = -SGN(ab) * num: bb = bb * nnn: G2 = -SGN(G2) IF b + bb < 0 OR b + bb > 480 THEN bb = -SGN(bb) * num: ab = ab * nnn: G2 = -SGN(G2) x = x + xb / grad: y = y + yb / grad: a = a + ab / grad: b = b + bb / grad SELECT CASE shape CASE 1 LINE (x, y)-(a, b), c: LINE (640 - x, 480 - y)-(640 - a, 480 - b), c LINE (x, 480 - y)-(a, 480 - b), c: LINE (640 - x, y)-(640 - a, b), c CASE 2 LINE (x, y)-(a, b), c, B: LINE (640 - x, 480 - y)-(640 - a, 480 - b), c, B LINE (x, 480 - y)-(a, 480 - b), c, B: LINE (640 - x, y)-(640 - a, b), c, B CASE 3 CIRCLE (x, y), 3, c: CIRCLE (a, b), 3, c: CIRCLE (640 - x, 480 - y), 3, c: CIRCLE (640 - a, 480 - b), 3, c CIRCLE (x, 480 - y), 3, c: CIRCLE (a, 480 - b), 3, c: CIRCLE (640 - x, y), 3, c: CIRCLE (640 - a, b), 3, c CASE 4 'heart 1 LINE (x - 9, y)-(x - 6, y - 3), c: LINE -(x - 4, y - 3), c: LINE -(x - 2, y - 2), c: LINE -(x, y - 1), c: LINE -(x + 2, y - 2), c: LINE -(x + 4, y - 3), c: LINE -(x + 6, y - 3), c: LINE -(x + 8, y), c: LINE -(x + 4, y + 5), c: LINE -(x, y + 8) , c LINE -(x - 6, y + 4), c: LINE -(x - 8, y + 1), c: LINE (a - 9, b)-(a - 6, b - 3), c: LINE -(a - 4, b - 3), c: LINE -(a - 2, b - 2), c: LINE -(a, b - 1), c: LINE -(a + 2, b - 2), c: LINE -(a + 4, b - 3), c: LINE -(a + 6, b - 3), c LINE -(a + 8, b), c: LINE -(a + 4, b + 5), c: LINE -(a, b + 8), c: LINE -(a - 6, b + 4), c: LINE -(a - 8, b + 1), c 'heart 2 LINE (640 - (x - 9), 480 - y)-(640 - (x - 6), 480 - (y - 3)), c: LINE -(640 - (x - 4), 480 - (y - 3)), c: LINE -(640 - (x - 2), 480 - (y - 2)), c: LINE -(640 - x, 480 - (y - 1)), c: LINE -(640 - (x + 2), 480 - (y - 2)), c: LINE -(640 - (x + 4) , 480 - (y - 3)), c LINE -(640 - (x + 6), 480 - (y - 3)), c: LINE -(640 - (x + 8), 480 - y), c: LINE -(640 - (x + 4), 480 - (y + 5)), c: LINE -(640 - x, 480 - (y + 8)), c: LINE -(640 - (x - 6), 480 - (y + 4)), c: LINE -(640 - (x - 8), 480 - (y + 1)), c LINE (640 - (a - 9), 480 - b)-(640 - (a - 6), 480 - (b - 3)), c: LINE -(640 - (a - 4), 480 - (b - 3)), c: LINE -(640 - (a - 2), 480 - (b - 2)), c: LINE -(640 - a, 480 - (b - 1)), c: LINE -(640 - (a + 2), 480 - (b - 2)), c: LINE -(640 - (a + 4) , 480 - (b - 3)), c LINE -(640 - (a + 6), 480 - (b - 3)), c: LINE -(640 - (a + 8), 480 - b), c: LINE -(640 - (a + 4), 480 - (b + 5)), c: LINE -(640 - a, 480 - (b + 8)), c: LINE -(640 - (a - 6), 480 - (b + 4)), c: LINE -(640 - (a - 8), 480 - (b + 1)), c 'heart 3 LINE (x - 9, 480 - y)-(x - 6, 480 - (y - 3)), c: LINE -(x - 4, 480 - (y - 3)), c: LINE -(x - 2, 480 - (y - 2)), c: LINE -(x, 480 - (y - 1)), c: LINE -(x + 2, 480 - (y - 2)), c: LINE -(x + 4, 480 - (y - 3)), c LINE -(x + 6, 480 - (y - 3)), c: LINE -(x + 8, 480 - y), c: LINE -(x + 4, 480 - (y + 5)), c: LINE -(x, 480 - (y + 8)), c: LINE -(x - 6, 480 - (y + 4)), c: LINE -(x - 8, 480 - (y + 1)), c LINE (a - 9, 480 - b)-(a - 6, 480 - (b - 3)), c: LINE -(a - 4, 480 - (b - 3)), c: LINE -(a - 2, 480 - (b - 2)), c: LINE -(a, 480 - (b - 1)), c: LINE -(a + 2, 480 - (b - 2)), c: LINE -(a + 4, 480 - (b - 3)), c LINE -(a + 6, 480 - (b - 3)), c: LINE -(a + 8, 480 - b), c: LINE -(a + 4, 480 - (b + 5)), c: LINE -(a, 480 - (b + 8)), c: LINE -(a - 6, 480 - (b + 4)), c: LINE -(a - 8, 480 - (b + 1)), c 'heart 4 LINE (640 - (x - 9), y)-(640 - (x - 6), y - 3), c: LINE -(640 - (x - 4), y - 3), c: LINE -(640 - (x - 2), y - 2), c: LINE -(640 - x, y - 1), c: LINE -(640 - (x + 2), y - 2), c: LINE -(640 - (x + 4), y - 3), c LINE -(640 - (x + 6), y - 3), c: LINE -(640 - (x + 8), y), c: LINE -(640 - (x + 4), y + 5), c: LINE -(640 - x, y + 8), c: LINE -(640 - (x - 6), y + 4), c: LINE -(640 - (x - 8), y + 1), c LINE (640 - (a - 9), b)-(640 - (a - 6), b - 3), c: LINE -(640 - (a - 4), b - 3), c: LINE -(640 - (a - 2), b - 2), c: LINE -(640 - a, b - 1), c: LINE -(640 - (a + 2), b - 2), c: LINE -(640 - (a + 4), b - 3), c LINE -(640 - (a + 6), b - 3), c: LINE -(640 - (a + 8), b), c: LINE -(640 - (a + 4), b + 5), c: LINE -(640 - a, b + 8), c: LINE -(640 - (a - 6), b + 4), c: LINE -(640 - (a - 8), b + 1), c CASE 5 PSET (x, y), c: PSET (a, b), c: PSET (640 - x, 480 - y), c: PSET (640 - a, 480 - b), c PSET (x, 480 - y), c: PSET (a, 480 - b), c: PSET (640 - x, y), c: PSET (640 - a, b), c CASE 6 LINE (x, y)-(319, 240), c: LINE (a, b)-(319, 240), c: LINE (640 - x, 480 - y)-(319, 240), c: LINE (640 - a, 480 - b)-(319, 240), c LINE (x, 480 - y)-(319, 240), c: LINE (a, 480 - b)-(319, 240), c: LINE (640 - x, y)-(319, 240), c: LINE (640 - a, b)-(319, 240), c LINE (x, y)-(a, b), c: LINE (640 - x, 480 - y)-(640 - a, 480 - b), c LINE (x, 480 - y)-(a, 480 - b), c: LINE (640 - x, y)-(640 - a, b), c CASE 7 LINE (x, y)-(319, 240), c: LINE (a, b)-(319, 240), c: LINE (640 - x, 480 - y)-(319, 240), c: LINE (640 - a, 480 - b)-(319, 240), c LINE (x, 480 - y)-(319, 240), c: LINE (a, 480 - b)-(319, 240), c: LINE (640 - x, y)-(319, 240), c: LINE (640 - a, b)-(319, 240), c CASE 8 FOR mm = 1 TO 4 IF mm = 1 THEN xd = 0: yd = 0 IF mm = 2 THEN xd = 639: yd = 0 IF mm = 3 THEN xd = 0: yd = 479 IF mm = 4 THEN xd = 639: yd = 479 LINE (x, y)-(xd, yd), c: LINE (a, b)-(xd, yd), c: LINE (640 - x, 480 - y)-(xd, yd), c: LINE (640 - a, 480 - b)-(xd, yd), c LINE (x, 480 - y)-(xd, yd), c: LINE (a, 480 - b)-(xd, yd), c: LINE (640 - x, y)-(xd, yd), c: LINE (640 - a, b)-(xd, yd), c NEXT mm CASE 9 LINE (x, y)-(x + 15, y + 15), c: LINE -(x - 15, y + 15), c: LINE -(x, y), c: LINE (a, b)-(a + 15, b + 15), c: LINE -(a - 15, b + 15), c: LINE -(a, b), c LINE (640 - x, 480 - y)-(640 - x + 15, 480 - y + 15), c: LINE -(640 - x - 15, 480 - y + 15), c: LINE -(640 - x, 480 - y), c: LINE (640 - a, 480 - b)-(640 - a + 15, 480 - b + 15), c: LINE -(640 - a - 15, 480 - b + 15), c: LINE -(640 - a, 480 - b), c LINE (x, 480 - y)-(x + 15, 480 - y + 15), c: LINE -(x - 15, 480 - y + 15), c: LINE -(x, 480 - y), c: LINE (a, 480 - b)-(a + 15, 480 - b + 15), c: LINE -(a - 15, 480 - b + 15), c: LINE -(a, 480 - b), c LINE (640 - x, y)-(640 - x + 15, y + 15), c: LINE -(640 - x - 15, y + 15), c: LINE -(640 - x, y), c: LINE (640 - a, b)-(640 - a + 15, b + 15), c: LINE -(640 - a - 15, b + 15), c: LINE -(640 - a, b), c CASE ELSE PRINT "ERROR!!!! heEHHEhhaHHAhaHAHa" END SELECT SELECT CASE style CASE 1 'color pulsing c = c + 1: IF c = 16 THEN c = 1 CASE 2 'color blending IF c >= 15 THEN cc = 1 ELSE IF c <= 1 THEN cc = 0 IF cc = 1 THEN c = c - 1 ELSE IF cc = 0 THEN c = c + 1 END SELECT notgonadoit: mycount = mycount + 1: IF mycount > 5 THEN mycount = 0: GOSUB pal LOOP UNTIL INKEY$ <> "" END tt: CLS RETURN pp: redo: rr = INT(RND * 14) + 1 IF rr = lrr THEN GOTO redo 'ensures a new color each push lrr = rr FOR cx = 1 TO 15 IF rr = 1 THEN rx = cx: gx = 0: bx = 0 'red IF rr = 2 THEN rx = 0: gx = cx: bx = 0 'green IF rr = 3 THEN rx = 0: gx = 0: bx = cx 'blue IF rr = 4 THEN rx = cx: gx = cx: bx = cx 'white to black IF rr = 5 THEN rx = cx: gx = cx: bx = 0 'yellow IF rr = 6 THEN rx = 0: gx = cx: bx = cx 'aquaish IF rr = 7 THEN rx = cx: gx = 0: bx = cx 'purplish IF rr = 8 THEN rx = INT(cx / 2): gx = INT(cx / 6.3): bx = INT(cx / 6.3)'brown IF rr = 9 THEN rx = cx: gx = INT(cx / 2): bx = 0'orange IF rr = 10 THEN rx = cx: gx = INT(cx / 1.3): bx = INT(cx / 6.3)'gold IF rr = 11 THEN rx = cx: gx = INT(cx / 4.5): bx = INT(cx / 1.5)'hotpink IF rr = 12 THEN rx = INT(cx / 2): gx = INT(cx / 1.9): bx = INT(cx / 1.75)'cold grey IF rr = 13 THEN rx = INT(cx / 2.3): gx = INT(cx / 1.3): bx = INT(cx / 6.3)'slime IF rr = 14 THEN rx = INT(cx / 1.6): gx = cx: bx = INT(cx / 6)'yelow-gren OUT &H3C8, cx: OUT &H3C9, (rx * 4) + 3: OUT &H3C9, (gx * 4) + 3: OUT &H3C9, (bx * 4) + 3 OUT &H3C8, 0: FOR mca = 1 TO 3: OUT &H3C9, 0: NEXT mca NEXT cx GOSUB getorg RETURN getorg: FOR sx = 1 TO 15 OUT &H3C7, sx: rox(sx) = INP(&H3C9): gox(sx) = INP(&H3C9): box(sx) = INP(&H3C9) NEXT sx RETURN pal: FOR xx = 1 TO 15 dd = xx - 1: IF dd = 0 THEN dd = 15 OUT &H3C8, xx: OUT &H3C9, rox(dd): OUT &H3C9, gox(dd): OUT &H3C9, box(dd) NEXT xx GOSUB getorg RETURN inc: IF grad = 1 THEN grad = 2: GOTO ymcam IF grad = 2 THEN grad = 4: GOTO ymcam IF grad = 4 THEN grad = 8: GOTO ymcam IF grad = 8 THEN grad = 16: GOTO ymcam IF grad = 16 THEN grad = 20: GOTO ymcam IF grad = 20 THEN grad = 1 ymcam: RETURN shpcng: shape = shape + 1 IF shape = 10 THEN shape = 1 RETURN csty: style = style + 1 IF style >= 3 THEN style = 1 RETURN stopitnow: IF wannaseeit = 1 THEN GOTO alrty IF wannaseeit = 0 THEN wannaseeit = 1: GOTO alrty2 alrty: wannaseeit = 0 alrty2: RETURN FUNCTION nnn 'neg 1 or pos 1 nnn = (INT((RND * 2) + 1) * 2 - 3) END FUNCTION FUNCTION num '5-9 num = (INT(RND * 5) + 5) END FUNCTION