Posted: 16th Mar 2003 13:15
A year and a half ago I was trying to build a plasma affect, when I eventually got there the effect looked "rough" so my friend and I tried to make it smoother but it went wrong, take a look

sync on : sync rate 20


dim grid(50,50)

for x = 1 to 50
y = 50
g = (rnd(50))+100
b = (rnd(50))+100
ink rgb(r,g,b),1
col = rgb(r,g,b)
grid(x,y)=col

next x


do
gosub warpus
gosub array
sync
loop


warpus:
for x = 1 to 50
y = 50
g = (rnd(150))+100
b = (rnd(150))+100
ink rgb(r,g,b),1
col = rgb(r,g,b)
grid(x,y)=col

next x

return



array:
for x = 1 to 50
for y = 2 to 50
refx = x
refy = y

rem extract colours
col = grid(x,y)
green = rgbg(col)
blue = rgbb(col)

rem smooth it baby!!!!
if x > 1 then col2 = grid(x-1,y)
green2 = rgbg(col2)
blue2 = rgbb(col2)
if green2 > (green + 5) then green2 = green2 - 5
if green2 > (green + 5) then green2 = green2 - 5
if blue2 blue then ngreen = green - rnd(7)
if blue + rnd(20) > green then nblue = blue - rnd(7)
if ngreen 100 then ngreen = ngreen - 7
if nblue > 100 then nblue = nblue - 7


rem mix up
mix = rnd(3)
if mix = 1 AND refx > 2 then refx = refx - 1
if mix = 2 AND refx 0 then refy = refy - 1
if ymix = 2 AND refy
Posted: 16th Mar 2003 13:17
ok, that failed, lets try again:

+ Code Snippet
sync on : sync rate 20


dim grid(50,50)

for x = 1 to 50
   y = 50
      g = (rnd(50))+100
      b = (rnd(50))+100
      ink rgb(r,g,b),1
      col = rgb(r,g,b)
      grid(x,y)=col

next x


do
gosub warpus
gosub array
sync
loop


warpus:
for x = 1 to 50
   y = 50
      g = (rnd(150))+100
      b = (rnd(150))+100
      ink rgb(r,g,b),1
      col = rgb(r,g,b)
      grid(x,y)=col

next x

return



array:
for x = 1 to 50
for y = 2 to 50
refx = x
refy = y

rem extract colours
col = grid(x,y)
green = rgbg(col)
blue = rgbb(col)

rem smooth it baby!!!!
if x > 1 then col2 = grid(x-1,y)
green2 = rgbg(col2)
blue2 = rgbb(col2)
if green2 > (green  + 5) then green2 = green2 - 5
if green2 > (green  + 5) then green2 = green2 - 5
if blue2 < (blue  - 5) then green2 = green2 + 5
if blue2 < (blue  - 5) then blue2 = blue2 + 5
change = RGB(r,green2,blue2)
grid(x,y)= change

rem alter colours
if green + rnd(20) > blue then ngreen = green - rnd(7)
if blue + rnd(20) > green then nblue = blue - rnd(7)
if ngreen < 1 then ngreen = 1
if nblue < 1 then nblue = 1
if ngreen > 100 then ngreen = ngreen - 7
if nblue > 100 then nblue = nblue - 7


rem mix up
mix = rnd(3)
if mix = 1 AND refx > 2 then refx = refx - 1
if mix = 2 AND refx < 48 then refx = refx + 1

ymix = rnd(3)
if ymix = 1 AND refy > 0 then refy = refy - 1
if ymix = 2 AND refy < 50 then refy = refy + 1


rem update array and draw on screen
ncol = RGB(r,ngreen,nblue)
ink rgb(0,ngreen,nblue),1
box refx*4,refy*4,(refx*4)+4,(refy*4)+4
grid(refx,refy-1)=ncol





next y
next x




return
Posted: 21st Mar 2003 13:52
x-d :-s )

Come on guys I need some input here, work with me on this one,
hehe
Posted: 21st Mar 2003 13:56
Well.. it's different Not exactly plasma, but looks nice all the same (if a bit chunky).

Cheers,

Rich
Posted: 22nd Mar 2003 0:25
It`s not plasma at all, it`s more like an fire effect.
Posted: 22nd Mar 2003 19:33
+ Code Snippet
rem flash in the dark
begin:
sync on : sync rate 20
hide mouse
dim grid(8000,8000)
for x = 1 to 8000
y = 50
g = (rnd(50))+100
b = (rnd(50))+100
ink rgb(r,g,b),1
col = rgb(r,g,b)
grid(x,y)=col
next x
do
gosub warpus
gosub array
sync
loop
warpus:
for x = 1 to 30
y = 8000
g = (rnd(2))+10
b = (rnd(2))+100
ink rgb(r,g,b),1
col = rgb(r,g,b)
grid(x,y)=col
next x
return
array:
for x = 1 to 50
for y = 2 to 50
refx = x
refy = y
col = grid(x,y)
green = rgbg(col)
blue = rgbb(col)
if x > 1 then col2 = grid(x-5,y)
green2 = rgbg(col2)
blue2 = rgbb(col2)
if green2 > (green  + 5) then green2 = green2 - 0.2
if green2 > (green  + 5) then green2 = green2 - 0.2
if blue2 < (blue  - 5) then green2 = green2 + 0.2
if blue2 < (blue  - 5) then blue2 = blue2 + 0.2
change = RGB(r,green2,blue2)
grid(x,y)= change
if green + rnd(00000.1) > blue then ngreen = green - rnd(10)
if blue + rnd(00000.1) > green then nblue = blue - rnd(10)
if ngreen < 00000.1 then ngreen = 2
if nblue < 000000.1 then nblue = 2
if ngreen > 5 then ngreen = ngreen - 2
if nblue > 5 then nblue = nblue - 2
mix = rnd(3)
if mix = 1 AND refx > 2 then refx = refx - 0.005
if mix = 2 AND refx < 48 then refx = refx + 0.005
ymix = rnd(3)
if ymix = 1 AND refy > 0 then refy = refy - 0.005
if ymix = 2 AND refy < 5 then refy = refy + 0.005
ncol = RGB(r,ngreen,nblue)
ink rgb(0,ngreen,nblue),1
box refx*4,refy*4,(refx*4)+4,(refy*4)+4
grid(refx,refy-0.1)=ncol
next y
next x
return