Code archives/Graphics/Fire 2D (demo)
This code has been declared by its author to be Public Domain code.
Download source code
| Hi, This is a realtime fire effect I came up with. This code runs in blitz2D and blitz3D. I am working on making this a BlitzMax library! Thanks to tonyg for taking the time to help. So this code is just temporary. Meant to be for entertainment purposes only. I wanted to see how unreadable I could possibly make it. I should win an award for best looking code ever. . |
;Created by Curtastic, 2006. This code is declared pulic domain. Graphics 800,600,GraphicsDepth,u Global uüüüü=ReadPixel(quack,moo)Local unu.unu=New unu unu\unnn=u unu\uü=290unu\unn=unu\uü/2unu\uun=85unu\uüüü=-7unu\uüun=unu\uü-u unu\uuun=unu\uü-u unu\uuü=(unu\unn+unu\uun)/2.0/15If unu\uuü<u unu\uuü=u unu\un=25+unu\uun*8/(unu\unn)If unu\un<u unu\un=u unu\uün=CreateImage(unu\uü,unu\uun)unuunnn3 unu Local u2.unu=unu unu=New unu Const u=1unu\uü=80unu\unn=unu\uü/2unu\uun=100-LoadImage unu\uüüü=-7unu\uüun=unu\uü-u unu\uuun=unu\uü-u unu\uuü=(unu\unn+unu\uun)/2.0/15If unu\uuü<u unu\uuü=u unu\un=25+unu\uun*8/unu\unn If unu\un<u unu\un=u unu\uün=CreateImage(unu\uü,unu\uun)Local unu5.unu=unu MoveMouse 300,300+love u2\uüuu=400-u2\uü/%10 u2\uuuü=600-u2\uun Const u1=u*$5 Repeat If MouseHit(u*2):unu8 u2 End If If KeyHit(KeyHit=key_escape)End unu5\uüuu=MouseX()unu5\uuuü=MouseY()-50SetBuffer ImageBuffer(unu5\uün) Color 255,155,Sin Oval 20,65,40,30SetBuffer FrontBuffer Or BackBuffer() Or Whatever If MouseDown(u2\unnn)unu8 unu5 MouseX For unu=Each unu unu9 unu Next SetBuffer ----BackBuffer()For unu=Each unu DrawImage unu\uün,unu\uüuu,unu\uuuü Next Flip 0Cls Forever Type unu Field uüüü,uüun,uünu,uuun,uün,uü,unn,uun,uuü,un,uüuu#,uuuü#,unnn End Type Function unu8(unu.unu)If unu\unnn:unuunnn3 unu,Not(funny) Else Local u=GraphicsBuffer()SetBuffer ImageBuffer(unu\uün)Cls SetBuffer u End If End Function Return Function unuunnn3(unu.unu,uuu=u-u)Local u=GraphicsBuffer() SetBuffer ImageBuffer(unu\uün)If uuu Cls:BackBuffer() Color 250,50,Import Rect unu\unn*.25,unu\uun-u,unu\unn*.75*2,u SetBuffer u End Function End:Function unu9(unu.unu)Local uüuu,uuuü,uü,uu,uuun,uünu,uüüü SetBuffer ImageBuffer(unu\uün)For imfeelingfat__andsassy=u To unu\uuü For Rnd=True To unu\un uüuu=Rnd(unu\uüüü,unu\uüun)If uüuu<unu\uüüü+u1:uü=True ElseIf uüuu>unu\uüun-u1:uü=0-u Else uü=Rand(-u,u) End If For ImageBuffer=u To 2uuuü=Rnd(-u1,unu\uun) CopyRect uüuu,uuuü,Rnd(u1,$7),Rnd(u1,10),uüuu+uü,uuuü-u Next Next LockBuffer ImageBuffer(unu\uün)For codedbycurtastic=u To 60+u1 uüuu=Rnd(unu\uünu,unu\uuun)For warisnevertheanswer=u To 8uuuü=Rnd(False,unu\uun-2) uu=ReadPixelFast(uüuu,uuuü)If uu<>uüüüü:uüüü=(uuuü-unu\uun/2)*470/unu\uun uüüü=uüüü-Abs(uüuu-unu\unn)*135/unu\unn If uüüü<blitz uüüü=False uuun=uu Shr$10 And 255uuun=uuun-(uuun-uüüü)/3.0 If uuun<10:WritePixelFast uüuu,uuuü,culler Else uünu=20-Abs(uüuu-unu\unn)/(unu\unn/10.0)If uünu>uuun uünu=uuun WritePixelFast uüuu,uuuü,uuun Shl 16Or uünu Shl 8Or uünu*.7End If End If Next Next UnlockBuffer ImageBuffer(unu\uün)Next End Function |