Posts: 3,368
Threads: 195
Joined: Jan 2003
Thank you
Peace cannot be obtained without war. Why? If there is already peace, it is unnecessary for war. If there is no peace, there is already war."
Visit www.neobasic.net to see rubbish in all its finest.
Posts: 3,368
Threads: 195
Joined: Jan 2003
Code: DEFINT A-Z
SCREEN 13
RANDOMIZE TIMER
FOR i& = 0 TO 255
OUT &H3C9, 0
OUT &H3C9, i&
OUT &H3C9, 0
NEXT i&
i& = 0
mb = -(INT(RND * 16) + 5)
ma = INT(RND * 15) + 3
me = 0
mc = -1
mc2 = -1
md = 255
r1 = INT(RND * 20) - 10
DIM rnd2(1 TO 4)
DO
m4 = (INT(RND * 8) + 2)
FOR i = 1 TO 4
rnd2(i) = INT(RND * r1)
NEXT i
rnd2(INT(RND * 4) + 1) = 1
m3 = 0
m2& = 0
FOR m = ma TO mb STEP mc
FOR i = 1 TO 4
rnd2(i) = INT(RND * r1)
NEXT i
rnd2(INT(RND * 4 + 1)) = 1
m3 = m3 + 1
m2& = m2& + 5000 \ (SQR(ABS(m3) + 1))
IF m2& > 10000 THEN m2& = 10000
FOR i = md TO me STEP mc2
IF me > 128 THEN OUT &H3C9, 0
OUT &H3C9, i
IF me > 128 THEN OUT &H3C9, 0
FOR j& = 1 TO m2& + ABS(256 - i)
NEXT j&:
im = i * m \ m4
sqr.i% = SQR(i%)
FOR im2 = im - sqr.i% TO im + sqr.i%
im3 = im2 \ (INT(RND * 5) + 1)'2
IF rnd2(1) > 0 THEN
LINE (160, 150 - im3)-(0, 100), i: LINE (160, 50 + im3)-(0, 100), i
LINE (160, 150 - im3)-(320, 100), i: LINE (160, 50 + im3)-(320, 100), i
END IF
IF rnd2(2) > 0 THEN
LINE (0, 200 - im2)-(160, 150 - im3), i: LINE (0, im2)-(160, 50 + im3), i
LINE (320, 200 - im2)-(160, 150 - im3), i: LINE (320, im2)-(160, 50 + im3), i
END IF
IF rnd2(3) > 0 THEN
LINE (160, 100 + im3)-(319, 199), i: LINE (160, 100 - im3)-(319, 0), i
LINE (160, 100 + im3)-(1, 199), i: LINE (160, 100 - im3)-(1, 0), i
END IF
IF rnd2(4) > 0 THEN
LINE (0, 200 - im2)-(160, 100 - im3), i: LINE (0, im2)-(160, 100 + im3), i
LINE (320, 200 - im2)-(160, 100 - im3), i: LINE (320, im2)-(160, 100 + im3), i
END IF
NEXT im2
IF INKEY$ <> "" THEN EXIT DO
NEXT i
SWAP me, md
mc2 = -mc2
IF mc2 > 0 THEN
mb = -(INT(RND * 16) + 5)
ma = INT(RND * 15) + 3
END IF
NEXT m
SWAP ma, mb
mc = -mc
LOOP
SUB line2 (x1 AS INTEGER, y1 AS INTEGER, x2 AS INTEGER, y2 AS INTEGER, colr AS INTEGER)
IF y1 > y2 THEN
SWAP y1, y2
SWAP x1, x2
END IF
DeltaX = x2 - x1
DeltaY = y2 - y1
IF DeltaX > 0 THEN
IF DeltaX > DeltaY THEN
DeltaYx2 = DeltaY * 2
DeltaYx2MinusDeltaXx2 = DeltaYx2 - (DeltaX * 2)
ErrorTerm = DeltaYx2 - DeltaX
PSET (x1, y1), colr
DO WHILE DeltaX > 0
DeltaX = DeltaX - 1
IF ErrorTerm >= 0 THEN
y1 = y1 + 1
ErrorTerm = ErrorTerm + DeltaYx2MinusDeltaXx2
ELSE
ErrorTerm = ErrorTerm + DeltaYx2
END IF
x1 = x1 + 1
PSET (x1, y1), colr
LOOP
ELSE
DeltaXx2 = DeltaX * 2
DeltaXx2MinusDeltaYx2 = DeltaXx2 - (DeltaY * 2)
ErrorTerm = DeltaXx2 - DeltaY
PSET (x1, y1), colr
DO WHILE DeltaY > 0
DeltaY = DeltaY - 1
IF ErrorTerm >= 0 THEN
x1 = x1 + 1
ErrorTerm = ErrorTerm + DeltaXx2MinusDeltaYx2
ELSE
ErrorTerm = ErrorTerm + DeltaXx2
END IF
y1 = y1 + 1
PSET (x1, y1), colr
LOOP
END IF
ELSE
DeltaX = -DeltaX
IF DeltaX > DeltaY THEN
DeltaYx2 = DeltaY * 2
DeltaYx2MinusDeltaXx2 = DeltaYx2 - (DeltaX * 2)
ErrorTerm = DeltaYx2 - DeltaX
PSET (x1, y1), colr
DO WHILE DeltaX > 0
DeltaX = DeltaX - 1
IF ErrorTerm >= 0 THEN
y1 = y1 + 1
ErrorTerm = ErrorTerm + DeltaYx2MinusDeltaXx2
ELSE
ErrorTerm = ErrorTerm + DeltaYx2
END IF
x1 = x1 - 1
PSET (x1, y1), colr
LOOP
ELSE
DeltaXx2 = DeltaX * 2
DeltaXx2MinusDeltaYx2 = DeltaXx2 - (DeltaY * 2)
ErrorTerm = DeltaXx2 - DeltaY
PSET (x1, y1), colr
DO WHILE DeltaY > 0
DeltaY = DeltaY - 1
IF ErrorTerm >= 0 THEN
x1 = x1 - 1
ErrorTerm = ErrorTerm + DeltaXx2MinusDeltaYx2
ELSE
ErrorTerm = ErrorTerm + DeltaXx2
END IF
y1 = y1 + 1
PSET (x1, y1), colr
LOOP
END IF
END IF
END SUB
Peace cannot be obtained without war. Why? If there is already peace, it is unnecessary for war. If there is no peace, there is already war."
Visit www.neobasic.net to see rubbish in all its finest.
Posts: 3,343
Threads: 83
Joined: Mar 2003
Can you guyz add WIDTH 80 after your proggies finish? It's a wee bit annoying to run the program and kill the IDE at the same time (yes I know I should compile, but hey)
Posts: 394
Threads: 16
Joined: Jun 2003
awesome effects everyone i love seeing this crazy stuff in qb
ammit potato!
Posts: 1,057
Threads: 156
Joined: Aug 2003
Code: SCREEN 13
FOR i = 1 TO 3
SELECT CASE i
CASE 1
FOR r = 1 TO 63
OUT &H3C8, 0
OUT &H3C9, r
OUT &H3C9, g
OUT &H3C9, b
FOR t = 1 TO 80000: NEXT
NEXT r
CASE 2
FOR g = 1 TO 63
OUT &H3C8, 0
OUT &H3C9, r
OUT &H3C9, g
OUT &H3C9, b
FOR t = 1 TO 80000: NEXT
NEXT g
CASE 3
FOR b = 1 TO 63
OUT &H3C8, 0
OUT &H3C9, r
OUT &H3C9, g
OUT &H3C9, b
FOR t = 1 TO 80000: NEXT
NEXT b
END SELECT
NEXT
just learning about OUT &H3C9
Posts: 2,765
Threads: 138
Joined: Nov 2002
changed diroga's code around:
Code: SCREEN 13
FOR r = 0 TO 63
FOR g = 0 TO 63
FOR b = 0 TO 63
OUT &H3C8, 0
OUT &H3C9, r
OUT &H3C9, g
OUT &H3C9, b
t = TIMER: DO: LOOP UNTIL TIMER - t <= 1
NEXT b, g, r
Back by popular demand!
I will byte and nibble you bit by bit until nothing remains but crumbs.
|