Code archives/Graphics/Fire 2D (demo)

This code has been declared by its author to be Public Domain code.

Download source code

Fire 2D (demo) by Curtastic
(Posted 20 years ago)
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\=290unu\unn=unu\/2unu\uun=85unu\uüüü=-7unu\uüun=unu\-u
unu\uuun=unu\-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\,unu\uun)unuunnn3 unu Local u2.unu=unu
unu=New unu Const u=1unu\=80unu\unn=unu\/2unu\uun=100-LoadImage
unu\uüüü=-7unu\uüun=unu\-u unu\uuun=unu\-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\,unu\uun)Local unu5.unu=unu MoveMouse 300,300+love
u2\uüuu=400-u2\/%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,,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ü,,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:=True
ElseIf uüuu>unu\uüun-u1:=0-u Else =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+,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