sorry, here is the source.
It needs one media file, you can download that.
I got some of the code from TDK's particle tutorial,
and while I was messing around I got this and thought it was cool.
disable escapekey
Set Display Mode 800,600,16
Sync On: Sync Rate 0: CLS 0
AutoCam Off
Backdrop On: Color Backdrop 0
Set Ambient Light 100
Randomize Timer()
Load Image "Figb2.bmp",1000
Dim Particle#(300,6)
Dim NumParticles(0)
Dim LifeSpan(0)
Dim CurParticle(0)
Dim EmitterX#(0): Dim EmitterY#(0): Dim EmitterZ#(0)
NumParticles(0) = 100
LifeSpan(0) = 200
EmitterX#(0) = 0.0
EmitterY#(0) = 0.0
EmitterZ#(0) = 30.0
For N = 1 To NumParticles(0): Rem Create 100 Particles
Make Object Plain N,10,10
Texture Object N,1000
Ghost Object On N
Next N
Position Camera 0,0,0
Do
UpdatePSystem()
Sync
Loop
End
function UpdatePSystem()
For T = 1 to NumParticles(0)
If Particle#(T,0) > 0: Rem If particle still alive
Particle#(T,0) = Particle#(T,0) - 1: Rem Knock one unit off it's life
Particle#(T,1) = Particle#(T,1) + Particle#(T,4)
Particle#(T,2) = Particle#(T,2) + Particle#(T,5)
Particle#(T,3) = Particle#(T,3) + Particle#(T,6)
Position object T, Particle#(T,1), Particle#(T,2), Particle#(T,3)
Set Object To Camera Orientation T
Else
Particle#(T,0) = Rnd(LifeSpan(0)/2)+LifeSpan(0)/2: Rem Random Life For Particle
Particle#(T,1) = EmitterX#(0): Rem Initial X position
Particle#(T,2) = EmitterY#(0): Rem Initial Y position
Particle#(T,3) = EmitterZ#(0): Rem Initial Z position /100.0
Particle#(T,4) = (Rnd(40)-20) / 100.0: Rem XVelocity
Particle#(T,5) = (Rnd(40)-20) / 100.0: Rem YVelocity
Particle#(T,6) = 0 - (Rnd(40) / 150.0): Rem ZVelocity
Endif
Next T
Endfunction
hi