Okey i have been fiddling with my particle system
It creates beatiful effects into my engine.
Here is screen of Holy effect:
Doesnt look good?
Well you maybe wanna see it on action. Just run this code:
Sync On
Sync Rate 0
Autocam off
Move Camera -300
Type oRot
x as float
y as float
z as float
Endtype
Make Object Plain 1,5,5
Ghost Object On 1
ObjAmount=600
Dim Rot(ObjAmount) as oRot
Rot(1).x=Rnd(360)
Rot(1).y=Rnd(360)
Rot(1).z=Rnd(360)
For x=2 to ObjAmount
Instance Object x,1
Rot(x).x=Rnd(2000)
Rot(x).y=Rnd(2000)
Rot(x).z=Rnd(2000)
If x>50 and x<300
Move Object x,-(x-48)
Endif
If x>=300
Position object x,Object Position X(1),Object Position Y(1),Object Position Z(1)
Move Object x,20
Move Object Down x,20
Endif
Next x
Make Object Sphere ObjAmount+1,900
Set Object Cull ObjAmount+1,0
Color Object ObjAmount+1,RGB(0,0,256)
Set Alpha Mapping On ObjAmount+1,10
Backdrop off
Tim=Timer()+5000
Action=1
Do
Inc Yrot,1
Text 0,0,str$(Screen Fps())
If Action=2
if speed<(.5*(ObjAmount-250)) then inc Speed,1
Endif
If Action=5
inc Speed,1
Endif
For x=1 to ObjAmount
If Action=5
Position Object x,Cos(Object Position X(x)+Object Angle X(x)+Yrot),Cos(Object Position Y(x)+Object Angle Y(x)+YRot),Cos(Object Position Z(x)+Object Angle Z(x)+YRot)
If x>250
Move Object x,-Speed
Endif
If Timer()>Tim then Action=1:Tim=Timer()+5000
Endif
If Action=4
Rotate Object x,0,0,0
Point Object x,0,0,0
Move Object x,5
If Timer()>Tim then Speed=0:Action=5:Tim=Timer()+12000
Endif
If Action=3
Move Object x,-10
Rotate Camera rnd(5),rnd(5),rnd(5)
If Timer()>Tim Then Action=4:Tim=Timer()+35000
Endif
If Action=2
Position Object x,Cos(Object Position X(x)+Object Angle X(x)+Yrot),Cos(Object Position Y(x)+Object Angle Y(x)+YRot),Cos(Object Position Z(x)+Object Angle Z(x)+YRot)
If x>250
inc i,1
speedo=.5*i-speed
if speedo>0 then Move Object x,speedo
Endif
If Object Collision(1,ObjAmount-30) then Action=3:Tim=Timer()+13000
Endif
If Action=1
Position Object x,Cos(Object Position X(x)+Object Angle X(x)+Yrot),Cos(Object Position Y(x)+Object Angle Y(x)+YRot),Cos(Object Position Z(x)+Object Angle Z(x)+YRot)
If x>250
inc i,1
Move Object x,.5*i
Endif
If Timer()>Tim then Speed=0:Action=2
Endif
Rotate Object x,Rot(x).x+YRot,Rot(x).y+YRot,Rot(x).z+YRot
Next x
i=0
Fastsync
Loop
If you want to see the 3d version of this effect then goto into Xmash competition thread
Click For Details!