Plasma Fireworks
Community Forums/Graphic Chat/Plasma Fireworks
| ||
I have been particle-happy recently and made this little snippet. I must say that I'm quite happy with myself. Would do you all think? FLARE.PNG ![]() GLOW.PNG ![]() If you like the code and/or images then you may have them but please credit me in any form of the releases. CODE (BLITZ3D) screenwidth=640 screenheight=480 Graphics3D screenwidth,screenheight,32,2 SetBuffer BackBuffer() Global flaresprite=LoadSprite("flare.png",1):HideEntity flaresprite Global halfwidth=screenwidth/2,halfheight=screenheight/2 Global glowsprite=LoadSprite("glow.png",1):HideEntity glowsprite Global camera=CreateCamera() Global light=CreateLight() Type flare Field x,y Field angle# Field speed# Field alpha# Field src End Type Type glow Field x,y Field alpha# Field src End Type While Not KeyHit(1) RenderWorld:Flip:UpdateWorld If KeyHit(57) x=Rand(100,screenwidth-100) y=Rand(100,screenheight-100) CreateGlow(x,y) For i=1 To 30 CreateExplosion(x,y) Next EndIf UpdateGlow() UpdateExplosion() Wend End Function CreateGlow(x,y) g.glow=New glow g\x=x g\y=y g\alpha=1.0 g\src=CopyEntity(glowsprite) ScaleSprite g\src,200/2,200/2 End Function Function UpdateGlow() For g.glow=Each glow g\alpha=g\alpha-0.05 If g\alpha > 0 PositionEntity g\src,halfwidth-g\x,g\y-halfheight,halfwidth*1 EntityAlpha g\src,g\alpha Else FreeEntity g\src Delete g EndIf Next End Function Function CreateExplosion(x,y) f.flare=New flare f\x=x f\y=y f\angle=Rand(360) f\speed=Rand(3,7) f\alpha=1.0 f\src=CopyEntity(flaresprite) RotateSprite f\src,f\angle ScaleSprite f\src,50/2,50/2 End Function Function UpdateExplosion() For f.flare=Each flare If f\alpha>0 f\x=f\x+Sin(f\angle)*f\speed f\y=f\y+Cos(f\angle)*f\speed If f\angle > 180 f\angle=f\angle-0.5 ElseIf f\angle < 180 f\angle=f\angle+0.5 EndIf f\alpha=f\alpha-0.01 PositionEntity f\src,halfwidth-f\x,f\y-halfheight,halfwidth*1 EntityAlpha f\src,f\alpha RotateSprite f\src,f\angle Else FreeEntity f\src Delete f EndIf Next End Function |
| ||
Looks nice! Next time indicate that it's bb code. Code doesn't work for me--even after I editted the code to load "png" images instead of "bmp." |
| ||
Sorry. ImageShack converted my images to PNG and forgot to change it in the source. I don't understand what you mean when you say indicate that it's bb code. |
| ||
Blitz3D (or BlitzPlus) files won't work with BlitzMax. It's good practice to warn Max users before they absent-mindedly copy and paste the code into the IDE. |
| ||
I completely forgot about BlitzMax. I will put a note at the top. |
| ||
I'm using Blitz3d and all I see is a black screen. |
| ||
Press the space key. And again. And again! Having fun yet? |
| ||
With these kinds of things I always like changing KeyHit to KeyDown and holding down the key. |
| ||
With these kinds of things I always like changing KeyHit to KeyDown and holding down the key. Thats a fun way of having to reboot your computer due to a jam up. :P [brag] But not with my computer!!!! [/brag] |
| ||
I did the exact same thing in a screensaver a few years back. Looks nice. Also whos computer reboots nowadays to holding a key down? |
| ||
make sure you use binary friendly dimensions for images such as 16 32 128 256 etc or some computers won't load the images properly. I rand the program with blitz3d and it said that the images didn't exist. So I then changed thm to 64x64 and 256x256 in Photoshop (Used the Image Size option), and they worked. Keep this in mind for future development. |
| ||
Oh the fireworks were splendid too by the way. A cool thing to think about, avoid fading off white, white is used as the brightest colour, in this case blue is the intense colour so as it lessens, it should instead go blue rather than gray. (watch the flare carefully) you could have a white flare and a blue one and shrink the white one first then the blue can fade. This is annoying though because you'll have to load 2 separate entities which both need to be taken care of in terms of loading and freeing etc. keep up the flare work thought you are on the right track. |