"Explosion" - Printable Version +- Qbasicnews.com (http://qbasicnews.com/newforum) +-- Forum: Qbasic "like" compilers/interpreters (http://qbasicnews.com/newforum/forum-5.html) +--- Forum: FB Discussion & Programming Help (http://qbasicnews.com/newforum/forum-15.html) +---- Forum: FB Projects (http://qbasicnews.com/newforum/forum-16.html) +---- Thread: "Explosion" (/thread-9845.html) "Explosion" - Skyler - 01-05-2007 My "explosion": Code:```randomize timer type particles     x as integer     y as integer     vs as integer     va as integer end type const PARTICLE = 20000 dim sparks(PARTICLE) as particles dim red(6,6) dim white(6,6) dim brown(6,6) startx = 1024 / 2 starty = 768 / 2 xmot = 2 ymot = 2 for i = 1 to PARTICLE     sparks(i).x = startx     sparks(i).y = starty     sparks(i).vs = int(rnd * 10 + 1)     sparks(i).va = int(rnd * 359 + 1) next i screen 20 for x = 1 to 6     for y = 1 to 6         read c         pset (x, y), c     next y next x get (0,0)-(6,6), red cls for x = 1 to 6     for y = 1 to 6         read c         pset (x, y), c     next y next x get (0,0)-(6,6), white cls for x = 1 to 6     for y = 1 to 6         read c         pset (x, y), c     next y next x get (0,0)-(6,6), brown while inkey = "" for i = 1 to PARTICLE     dist = sqr(((sparks(i).x - startx)^2) + ((sparks(i).y - starty)^2))     if dist < 150 then         put (sparks(i).x, sparks(i).y), white     elseif dist < 300 and dist > 150 then         put (sparks(i).x, sparks(i).y), red     elseif dist > 300 then         put (sparks(i).x, sparks(i).y), brown     end if     if sparks(i).va < 90 then         sparks(i).x = int(sin(sparks(i).va) * sparks(i).vs) + sparks(i).x         sparks(i).y = int(cos(sparks(i).va) * sparks(i).vs) + sparks(i).y     elseif sparks(i).va > 90 AND sparks(i).va < 180 then         a = sparks(i).va - 90         sparks(i).x = int(sin(sparks(i).va) * sparks(i).vs) + sparks(i).x         y = int(cos(sparks(i).va) * sparks(i).vs) + sparks(i).y         sparks(i).y = 2 * (starty - y) + starty     elseif sparks(i).va > 180 AND sparks(i).va < 270 then         a = sparks(i).va - 180         x = int(sin(sparks(i).va) * sparks(i).vs) + sparks(i).x         sparks(i).x = 2 * (startx - x) + startx         y = int(cos(sparks(i).va) * sparks(i).vs) + sparks(i).y         sparks(i).y = 2 * (starty - y) + starty     elseif sparks(i).va > 270 AND sparks(i).va < 360 then         a = sparks(i).va - 270         x = int(sin(sparks(i).va) * sparks(i).vs) + sparks(i).x         sparks(i).x = 2 * (startx - x) + startx         sparks(i).y = int(cos(sparks(i).va) * sparks(i).vs) + sparks(i).y     end if     if sparks(i).x > 1024 or sparks(i).x < 0 or sparks(i).y > 768 or sparks(i).y < 0 then         sparks(i).x = startx : sparks(i).y = starty     end if next i cls startx = startx + xmot starty = starty + ymot if startx <= 0 or startx >= 1024 then xmot = -xmot if starty <= 0 or starty >= 768 then ymot = -ymot wend data 0,0,4,4,0,0 data 0,4,4,4,4,0 data 4,4,4,4,4,4 data 4,4,4,4,4,4 data 0,4,4,4,4,0 data 0,0,4,4,0,0 data 0,0,14,14,0,0 data 0,14,14,14,14,0 data 14,14,14,14,14,14 data 14,14,14,14,14,14 data 0,14,14,14,14,0 data 0,0,14,14,0,0 data 0,0,6,6,0,0 data 0,6,6,6,6,0 data 6,6,6,6,6,6 data 6,6,6,6,6,6 data 0,6,6,6,6,0 data 0,0,6,6,0,0``` "Explosion" - xteraco - 01-27-2007 Nice. 8) "Explosion" - BadMrBox - 01-28-2007 I would say it looks rather cool "Explosion" - Skyler - 01-30-2007 Needs more details though. Like a cloud. Plasma. Yeah.