I was wondering if this was a good fire effect. It didn't take me long to do, but I would like some feedback from the community.
IMG

You are allowed to use the code and image if you like it but please put me in the credits or in any source code released.
IMG

You are allowed to use the code and image if you like it but please put me in the credits or in any source code released.
Graphics3D 640,480,32,2 SetBuffer BackBuffer() SeedRnd MilliSecs() Global halfwidth=640/2 Global halfheight=480/2 Type flame Field x,y Field size Field alpha# Field src Field rot Field angle Field speed Field fadespeed# Field rotright End Type Global f.flame Global camera=CreateCamera(),light=CreateLight() Global flamesprite=LoadSprite("flame.bmp",1):HideEntity flamesprite Global fps=CreateTimer(60) For i=1 To 10 CreateFlame(halfwidth,halfheight+50) Next While Not KeyHit(1) Flip:RenderWorld WaitTimer(fps) UpdateFlame() Wend End Function CreateFlame(x,y) f.flame=New flame f\x=x f\y=y f\size=Rand(50,100)/2 f\alpha=1 f\src=CopyEntity(flamesprite) f\rot=Rand(360) f\speed=Rand(1,3) f\angle=Rand(-40,40) f\fadespeed=Rnd(0.01,0.04) f\rotright=Rand(1,2) ScaleSprite f\src,f\size,f\size End Function Function UpdateFlame() For f.flame=Each flame If f\alpha > 0 f\alpha=f\alpha-f\fadespeed If f\rotright=1 f\rot=f\rot+6 ElseIf f\rotright=2 f\rot=f\rot-6 EndIf f\y=f\y-f\speed ;f\x=f\x+Sin(f\angle)*f\speed RotateSprite f\src,f\rot PositionEntity f\src,f\x-halfwidth,halfheight-f\y,halfwidth*1 EntityAlpha f\src,f\alpha Else FreeEntity f\src Delete f CreateFlame(halfwidth,halfheight+50) EndIf Next End Function