
-----------------------------------
zylum
Wed Feb 25, 2004 5:48 pm

fire works
-----------------------------------
here's a fire works effect i made. enjoy :D


setscreen ("graphics:1000;650,offscreenonly")

const size := 100
const fireLength := 50
var decay := 0.98
var gravity := 1
var pixel : array 1 .. size, 1 .. 2 of real
var velocity : array 1 .. size, 1 .. 2 of real
var px, py : real

procedure newFire (x, y, vx, maxV : real)
    var ang : int
    for i : 1 .. size
        pixel (i, 1) := x
        pixel (i, 2) := y
        ang := Rand.Int (0, 360)
        velocity (i, 1) := cosd (ang) * (Rand.Real * (2 * maxV) - maxV) + vx
        velocity (i, 2) := sind (ang) * (Rand.Real * (2 * maxV) - maxV)
    end for
end newFire

procedure moveFire (c : int)
    for i : 1 .. size
        pixel (i, 1) += velocity (i, 1)
        pixel (i, 2) += velocity (i, 2)
        velocity (i, 1) *= decay
        velocity (i, 2) -= gravity
        velocity (i, 2) *= decay
        drawdot (round (pixel (i, 1)), round (pixel (i, 2)), c)
    end for
end moveFire

procedure launch (x, ang, spd, c : int)
    px := x
    py := 0
    var pvx, pvy : real
    pvx := cosd (ang) * spd
    pvy := sind (ang) * spd
    loop
        exit when pvy < 0
        drawfillbox (0, 0, maxx, maxy, 7)
        px += pvx
        py += pvy
        pvx *= decay
        pvy -= gravity
        pvy *= decay
        drawfilloval (round (px), round (py), 3, 3, c)
        View.Update
        cls
    end loop
    newFire (px, py, pvx, 10)
    for i : 1 .. fireLength
        drawfillbox (0, 0, maxx, maxy, 7)
        moveFire (c)
        View.Update
        cls
    end for
end launch

loop
    launch (Rand.Int (100, maxx - 100), Rand.Int (70, 110), 40, Rand.Int (0, 255))
end loop


-zylum

-----------------------------------
Paul
Wed Feb 25, 2004 5:53 pm


-----------------------------------
pretty nice, though it goes a bit too fast on my computer and sometimes it doesn't explode (or is it in colors that I can't see?)

-----------------------------------
jonos
Wed Feb 25, 2004 5:55 pm


-----------------------------------
yeah, i can't see it also, only a few colours every now and then.

-----------------------------------
Tony
Wed Feb 25, 2004 5:56 pm


-----------------------------------
it is defenatly too fast... but if you slow it down a bit (a delay here and there) it looks nice :D +10Bits

-----------------------------------
the_short1
Wed Feb 25, 2004 6:17 pm


-----------------------------------
i still dont get how y9ou can make so many programs...

WAIT I KNOW>>>> I THINK I FIGURED IT OUT>>>> you make these in school dont u???? that is why ur able to make so many DAM programs every DAM week...

anyways....

fireworks ROCKS>>>>> i have a realy slow computer so animations were perfect

in 63 lines... That is NICE!

itd take me prob 300 liens and 3 hours

-----------------------------------
zylum
Wed Feb 25, 2004 6:19 pm


-----------------------------------
lol, i guess that must mean my computer is a peice of crap cuz it runs at normal speeds here  :shock:  and yeah, i should have specified a color range that doesnt have a bunch of dark colors in it...

oh and the_short1, i dont do these at school... in fact i dont do anything in compsci... i just play games and do all the assignments on saturday cuz theyre sooo damn easy... anyways, im glad you like my proggies :D

-----------------------------------
jonos
Wed Feb 25, 2004 8:14 pm


-----------------------------------
your class must rock!!! jk, it sucks having an easy class sometimes

-----------------------------------
Cervantes
Thu Feb 26, 2004 6:14 pm


-----------------------------------
If you look close enough (unless its actually a black ball) you can see the particles flying off.  

Great job zylum!

-----------------------------------
Andy
Thu Feb 26, 2004 9:34 pm


-----------------------------------
ever heard of delay?

-----------------------------------
the_short1
Thu Feb 26, 2004 9:46 pm


-----------------------------------
one thing... your program kinda sucks with 800x600 res... maybe have a option for both taht and 1000+w/e the other number is

-----------------------------------
WhatAmIDoing
Mon Mar 01, 2004 12:18 pm


-----------------------------------
Thats pretty cool all though if you add a delay of 50 after the View.update it really works a lot better

-----------------------------------
Hotaru
Wed Mar 03, 2004 6:54 pm


-----------------------------------
your program worked very well~but there is only one suggestion~the colour is plain~so perhaps you can make the fireworks multi-colored~

-----------------------------------
Tallguy
Wed Apr 23, 2008 12:54 pm

RE:fire works
-----------------------------------
cool, but to agree with everyone, do add delays, and have more then one firecracker go off @ the same time

-----------------------------------
Mackie
Wed Apr 23, 2008 2:42 pm

RE:fire works
-----------------------------------
How did you even manage to find this? It's four years old I hope you realize.

-----------------------------------
Tallguy
Thu Apr 24, 2008 7:03 am

RE:fire works
-----------------------------------
i searched it, i need fireworks for my final, so i wanted to see wat others had made

-----------------------------------
repsoccer16
Thu Apr 24, 2008 7:20 am

RE:fire works
-----------------------------------
good program just need to slow it down a ways.

-----------------------------------
death bringer
Tue Apr 29, 2008 10:59 am

RE:fire works
-----------------------------------
I fixed the code and made the effect slower enjoy
-Death bringer

setscreen ("graphics:max;max,offscreenonly") 

const size := 100 
const fireLength := 150 
var decay := 0.98 
var gravity := 1 
var pixel : array 1 .. size, 1 .. 2 of real 
var velocity : array 1 .. size, 1 .. 2 of real 
var px, py : real 

procedure newFire (x, y, vx, maxV : real) 
    var ang : int 
    for i : 1 .. size 
        pixel (i, 1) := x 
        pixel (i, 2) := y 
        ang := Rand.Int (0, 360) 
        velocity (i, 1) := cosd (ang) * (Rand.Real * (2 * maxV) - maxV) + vx 
        velocity (i, 2) := sind (ang) * (Rand.Real * (2 * maxV) - maxV) 
    end for 
end newFire 

procedure moveFire (c : int) 
    for i : 1 .. size 
        pixel (i, 1) += velocity (i, 1) 
        pixel (i, 2) += velocity (i, 2) 
        velocity (i, 1) *= decay 
        velocity (i, 2) -= gravity 
        velocity (i, 2) *= decay 
        drawdot (round (pixel (i, 1)), round (pixel (i, 2)), c) 
    end for 
end moveFire 

procedure launch (x, ang, spd, c : int) 
    px := x 
    py := 0 
    var pvx, pvy : real 
    pvx := cosd (ang) * spd 
    pvy := sind (ang) * spd 
    loop 
        exit when pvy < 0 
        drawfillbox (0, 0, maxx, maxy, 7) 
        px += pvx 
        py += pvy 
        pvx *= decay 
        pvy -= gravity 
        pvy *= decay 
        drawfilloval (round (px), round (py), 3, 3, c) 
        View.Update 
        cls 
    end loop 
    newFire (px, py, pvx, 10) 
    for i : 1 .. fireLength 
        drawfillbox (0, 0, maxx, maxy, 7) 
        moveFire (c) 
        View.Update 
        cls 
    end for 
end launch 

loop 
    launch (Rand.Int (100, maxx - 100), Rand.Int (70, 110), 40, Rand.Int (0, 255)) 
end loop

-----------------------------------
death bringer
Tue Apr 29, 2008 11:18 am

RE:fire works
-----------------------------------
Also

 
setscreen ("graphics:max;max,offscreenonly") 

const size := 100 
const fireLength := 200
var decay := 0.93 
var gravity := 0.1
var pixel : array 1 .. size, 1 .. 2 of real 
var velocity : array 1 .. size, 1 .. 2 of real 
var px, py : real 

procedure newFire (x, y, vx, maxV : real) 
    var ang : int 
    for i : 1 .. size 
        pixel (i, 1) := x 
        pixel (i, 2) := y 
        ang := Rand.Int (500, 30000)
         
        velocity (i, 1) := cosd (ang) * (Rand.Real * (2 * maxV) - maxV) + vx 
        velocity (i, 2) := sind (ang) * (Rand.Real * (2 * maxV) - maxV) 
    end for 
end newFire 

procedure moveFire (c : int) 

    for i : 1 .. size 
        pixel (i, 1) += velocity (i, 1) 
        pixel (i, 2) += velocity (i, 2) 
        velocity (i, 1) *= decay 
        velocity (i, 2) -= gravity 
        velocity (i, 2) *= decay 
        drawdot (round (pixel (i, 1)), round (pixel (i, 2)), c) 
    end for 
end moveFire 

procedure launch (x, ang, spd, c : int) 
    px := x 
    py := 0 
    var pvx, pvy : real 
    pvx := cosd (ang) * spd 
    pvy := sind (ang) * spd 
    loop 
        exit when pvy < 0 
        drawfillbox (0, 0, maxx, maxy, 7) 
        px += pvx 
        py += pvy 
        pvx *= decay 
        pvy -= gravity 
        pvy *= decay 
        drawfilloval (round (px), round (py), 2, 2, c) 
        View.Update 
        cls 
    end loop 
    newFire (px, py, pvx, 10) 
    for i : 1 .. fireLength 
    
        drawfillbox (0, 1, maxx, maxy, 7)
        
        moveFire (c) 
        View.Update 
        cls 
    end for 
end launch 

loop 
    launch (Rand.Int (100, maxx - 100), Rand.Int (70, 110), 40, Rand.Int (0, 255)) 
end loop

-----------------------------------
Tallguy
Tue Apr 29, 2008 12:39 pm

RE:fire works
-----------------------------------
nows its really fast

-----------------------------------
raidercom
Tue Apr 29, 2008 2:36 pm

Re: fire works
-----------------------------------
I can hardly see anything its so fast...

Might wanna try a Time.DelaySinceLast (75) in the main loop.

-----------------------------------
death bringer
Thu May 01, 2008 11:03 am

RE:fire works
-----------------------------------
Sorry about the last 2 post i made. when i had goten home it had gone faster on my computer i hope now this post finishes this issue.

setscreen ("graphics:max;max,offscreenonly,nocursor")
colorback (7)
process Bump_Sound2 
    sound (500, 200) 
end Bump_Sound2 
process Bump_Sound 
    sound (1000, 1) 
end Bump_Sound
procedure Blur_Screen (I, C : int)
 Blur_Screen (100, 9) 
    for B : 1 .. I 
        drawline (Rand.Int (1, maxx), Rand.Int (1, maxy), 
            Rand.Int (1, maxx), Rand.Int (1, maxy), C) 
            
    end for 
end Blur_Screen 

const size := 100 
const fireLength := 400 
var decay := 0.93 
var gravity := 0.1 
var pixel : array 1 .. size, 1 .. 2 of real 
var velocity : array 1 .. size, 1 .. 2 of real 
var px, py : real 

procedure newFire (x, y, vx, maxV : real) 
var ang : int 
for i : 1 .. size 
pixel (i, 1) := x 
pixel (i, 2) := y 
ang := Rand.Int (500, 30000) 

velocity (i, 1) := cosd (ang) * (Rand.Real * (2 * maxV) - maxV) + vx 
velocity (i, 2) := sind (ang) * (Rand.Real * (2 * maxV) - maxV) 
end for 
end newFire 

procedure moveFire (c : int) 

for i : 1 .. size 
pixel (i, 1) += velocity (i, 1) 
pixel (i, 2) += velocity (i, 2) 
velocity (i, 1) *= decay 
velocity (i, 2) -= gravity 
velocity (i, 2) *= decay 

drawdot (round (pixel (i, 1)), round (pixel (i, 2)), c)
end for 
end moveFire 

procedure launch (x, ang, spd, c : int) 
px := x 
py := 0 
var pvx, pvy : real 
pvx := cosd (ang) * spd 
pvy := sind (ang) * spd 
loop 
fork Bump_Sound2
exit when pvy < 0 

px += pvx 
py += pvy 
pvx *= decay 
pvy -= gravity 
pvy *= decay 
drawfilloval (round (px), round (py), 2, 2, c) 
View.Update 
cls 
end loop 
newFire (px, py, pvx, 20) 
for i : 1 .. fireLength 

 

moveFire (c) 
View.Update 
cls 
end for
fork Bump_Sound 
end launch 

loop 
launch (Rand.Int (100, maxx - 100), Rand.Int (70, 110), 40, Rand.Int (0, 255)) 
end loop

-----------------------------------
Michael516
Fri May 02, 2008 8:08 am

RE:fire works
-----------------------------------
this one works a lot better, but i think that the fireworks need to be a little more colorful.

-----------------------------------
Carey
Mon May 05, 2008 10:16 am

RE:fire works
-----------------------------------
Please get a lock on this. This topic is 4 years old.

-----------------------------------
death bringer
Mon May 05, 2008 10:48 am

RE:fire works
-----------------------------------
If you want the fire work to move even slower place this after line 57

delay(3)
