Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Make the BEST simulation EVER!! :D !!!SUPER CHALLENGE!!!
#2
here is a 3D fireworks program I made. copy it and then hit F5 (you know). hold space-bar to rotate the image. tell me how you like it... oh, and I used my own 3D formula, and so the 3D is a little off.

Code:
DIM bx3(20, 150)
DIM bz3(20, 150)
DIM c!(360), s!(360)
DIM bx(20, 150)
DIM by(20, 150)
DIM bz(20, 150)
DIM bxs(20, 150)
DIM bys(20, 150)
DIM bzs(20, 150)
DIM colr(20, 150)
DIM bx1(20, 150)
DIM by1(20, 150)
DIM boom$(20)
DIM bom(20)
DIM x(20)
DIM y(20)
DIM z(20)
DIM colm(20)

SCREEN 12

RANDOMIZE TIMER

bnom = 150 '********************* number of explosion particals... lower it for speed

nom = 4  '*********************** number of fireworks

coln = 7

FOR num = 1 TO nom
boom$(num) = "S"
NEXT num

FOR der = 1 TO coln
READ Rer(der)
READ Ger(der)
READ Ber(der)
NEXT der

DATA 1,33,33
DATA 33,1,33
DATA 33,33,1
DATA 1,1,33
DATA 33,1,1
DATA 1,33,1
DATA 1,1,1

BEEP

FOR i = 1 TO 360
c!(i) = COS(i * 3.14 / 180)
s!(i) = SIN(i * 3.14 / 180)
NEXT

cx = 320
cy = 240
cz = 350

angle = 90

time = TIMER

FOR ferx = 1 TO 660
FOR fery = 1 TO 480
PSET (1, 1), back
NEXT fery
NEXT ferx

etime = TIMER

back = 0

bol = 0
gol = 0
rol = 0

DO
Key$ = INKEY$

bol = bol + .03

OUT &H3C8, 0
OUT &H3C9, rol
OUT &H3C9, gol
OUT &H3C9, bol

tim = TIMER

IF (angle >= 359) THEN
angle = 1
END IF

IF (Key$ = " ") THEN
angle = angle + 2
END IF

FOR num = 1 TO nom

IF (boom$(num) = "S") THEN
FOR bnum = 1 TO bnom
bom(num) = 63
bx(num, bnum) = x(num)
by(num, bnum) = y(num)
bz(num, bnum) = z(num)
bxs(num, bnum) = (RND * 3) - 1.5
bys(num, bnum) = (RND * 3) - 1.5
bzs(num, bnum) = (RND * 3) - 1.5
colr(num, bnum) = num
NEXT bnum
colm(num) = (INT(RND * (coln))) + 1
x(num) = (INT(RND * 620)) + 20
y(num) = 470
z(num) = (INT(RND * 700))
boom$(num) = "Y"
END IF

IF (boom$(num) = "Y") THEN
FOR bnum = 1 TO bnom
bx3(num, bnum) = (bx(num, bnum) - cx) * c!(angle) + (bz(num, bnum) - cz) * s!(angle)
bz3(num, bnum) = (bz(num, bnum) - cz) * c!(angle) - (bx(num, bnum) - cx) * s!(angle)
bz3(num, bnum) = bz3(num, bnum) + cz
bx3(num, bnum) = bx3(num, bnum) + cx
bom(num) = bom(num) - .003
OUT &H3C8, num
OUT &H3C9, ((bom(num) / Rer(colm(num))) - 62)
OUT &H3C9, ((bom(num) / Ger(colm(num))) - 62)
OUT &H3C9, ((bom(num) / Ber(colm(num))) - 62)
PSET (bx1(num, bnum), by1(num, bnum)), back
IF (bz3(num, bnum) > 1000) THEN
bz3(num, bnum) = 1
ELSEIF (bz3(num, bnum) < 1) THEN
bz3(num, bnum) = 0
END IF
bx1(num, bnum) = bx3(num, bnum) + ((320 - bx3(num, bnum)) / 1000) * bz3(num, bnum)
by1(num, bnum) = by(num, bnum) + ((240 - by(num, bnum)) / 1000) * bz3(num, bnum)
bys(num, bnum) = bys(num, bnum) + .03
bx(num, bnum) = bx(num, bnum) + bxs(num, bnum)
by(num, bnum) = by(num, bnum) + bys(num, bnum)
bz(num, bnum) = bz(num, bnum) + bzs(num, bnum)
PSET (bx1(num, bnum), by1(num, bnum)), colr(num, bnum)
IF (bom(num) <= 4) THEN
PSET (bx1(num, bnum), by1(num, bnum)), back
boom$(num) = "E"
fuel(num) = (INT(RND * 400)) + 100
END IF
NEXT bnum
END IF

IF (boom$(num) = "E") THEN
olx3(num) = x1(num)
oly3(num) = y1(num)
x3(num) = (x(num) - cx) * c!(angle) + (z(num) - cz) * s!(angle)
z3(num) = (z(num) - cz) * c!(angle) - (x(num) - cx) * s!(angle)
z3(num) = z3(num) + cz
x3(num) = x3(num) + cx
x1(num) = x3(num) + ((320 - x3(num)) / 1000) * z3(num)
y1(num) = y(num) + ((240 - y(num)) / 1000) * z3(num)
LINE (olx3(num), oly3(num))-(olx3(num), (oly3(num) + (fuel(num) / 20))), back
fuel(num) = fuel(num) - .65
y(num) = y(num) - (fuel(num) / 300)
LINE (x1(num), y1(num))-(x1(num), (y1(num) + (fuel(num) / 20))), 14
IF (fuel(num) < -6) THEN
boom$(num) = "S"
PSET (x(num), (y(num) + (fuel(num) / 20))), 0
END IF
END IF

IF (boom$(num) <> "Y") THEN
FOR ford = 1 TO (bnom * 2)
PSET (1, 1), 1
NEXT ford
END IF

NEXT num

etim = TIMER

LOOP UNTIL Key$ = "q"

PRINT "start:"; etime; "end:"; time; "fps:"; etime - time; "It takes "; (INT(etime - time) / (100 * 100)); " to set a pixel."

hope you enjoy it... oh, and the farther away the thing gets, the worst the 3D works.... Sad ......... and I was rushing, so the explosion is shaped somewhat like a cube! Cry [/code]
Reply


Messages In This Thread
Make the BEST simulation EVER!! :D !!!SUPER CHALLENGE!!! - by mddwebboy - 06-06-2004, 10:11 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)