Just a viewer/editor to play with particle commands...
`::::SET UP::::
SYNC ON:SYNC RATE 25:RANDOMIZE TIMER():set display mode 800,600,32:backdrop on:color backdrop rgb(4, 8, 25):set camera range 0,6000:set text font "arial"
set text to bold:set text size 16:set ambient light 70:RECORD SOUND 1, 1000:t#=timer()+4000
do
set cursor 0,0
print "Arrow Keys= Move Camera":print "PgUp/PgDn = Offset":print "Mousewheel = Zoom"
if timer()>t# then exit
sync
loop
stop recording sound:clone sound 2, 1:set sound speed 2, 100000:set sound speed 1, 95000
`::::SET VARIABLES::::
Mwait=40:Pfreq#=1:Pveloc#=1:Pgrav#=6:Pspeed#=0.005:Pinc#=0.0005:Pchaos#=0.1:Pfloor=1:Plife#=100:Pghost=6:Pgpct=50:Pradius#=2
pn=1`:px#=particles position x(1):py#=particles position y(1):pz#=particles position z(1):omz=mousez()
gosub Element
colr1=rgb(20,20,200):colr2=rgb(200,200,200):colr3=rgb(20,20,200):colr4=rgb(200,200,200)
position camera camera position x(),camera position y(),camera position z()-2
MainLoop:
point camera px#,py#,pz#
choices=13
while mouseclick()=1:ENDWHILE
DO
yb=0
bw=80
bh=34
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1):box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1):box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1):box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1):box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1):box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1):box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4
yb=0
txo=8
MouseHover=0
if MouseX()<81 then MouseHover=-1
oSquat=MouseSquat
MouseSquat=0
if MouseHover=-1 then MouseSquat=(int(MouseY()/35))+1
if MouseHover=-1 and oSquat<>MouseSquat then if MouseSquat<=choices then play sound 1
set text size 16
if MouseSquat=1 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "POS EMI":yb=yb+(bh+1)
if MouseSquat=2 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "EMI LVL":yb=yb+(bh+1)
if MouseSquat=3 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 7,yb+txo:print "VELOCITY":yb=yb+(bh+1)
if MouseSquat=4 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "GRAVITY":yb=yb+(bh+1)
if MouseSquat=5 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 15,yb+txo:print "SPEED":yb=yb+(bh+1)
if MouseSquat=6 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 15,yb+txo:print "CHAOS":yb=yb+(bh+1)
if MouseSquat=7 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 15,yb+txo:print "FLOOR":yb=yb+(bh+1)
if MouseSquat=8 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 20,yb+txo:print "LIFE":yb=yb+(bh+1)
if MouseSquat=9 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 15,yb+txo:print "GHOST":yb=yb+(bh+1)
if MouseSquat=10 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 15,yb+txo:print "RADIUS":yb=yb+(bh+1)
if MouseSquat=11 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 15,yb+txo:print "MOUSE":yb=yb+(bh+1)
if MouseSquat=12 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor es,yb+txo:print Etype$:yb=yb+(bh+1)
if MouseSquat=13 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "RANDOM"
if Mouseclick()=1 and MouseSquat=1 then goto PosEmi
if Mouseclick()=1 and MouseSquat=2 then goto Frequency
if Mouseclick()=1 and MouseSquat=3 then goto Velocity
if Mouseclick()=1 and MouseSquat=4 then goto Gravity
if Mouseclick()=1 and MouseSquat=5 then goto Speed
if Mouseclick()=1 and MouseSquat=6 then goto Chaos
if Mouseclick()=1 and MouseSquat=7 then goto Floorz
if Mouseclick()=1 and MouseSquat=8 then goto Life
if Mouseclick()=1 and MouseSquat=9 then goto Ghost
if Mouseclick()=1 and MouseSquat=10 then goto Radius
if Mouseclick()=1 and MouseSquat=11 then goto MouseWait
if Mouseclick()=1 and MouseSquat=12 then gosub Element
if Mouseclick()=1 and MouseSquat=13 then lock pixels:gosub Random:gosub ReSpawn:unlock pixels
gosub Controls
sync
LOOP
PosEmi:
choices=4
while mouseclick()=1:ENDWHILE
DO
yb=0
bw=80
bh=34
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4
yb=0
txo=8
MouseHover=0
if MouseX()<81 then MouseHover=-1
oSquat=MouseSquat
MouseSquat=0
if MouseHover=-1 then MouseSquat=(int(MouseY()/35))+1
if MouseHover=-1 and oSquat<>MouseSquat then if MouseSquat<=choices then play sound 1
set text size 16
if MouseSquat=1 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 15,yb+txo:print "X POS":yb=yb+(bh+1)
if MouseSquat=2 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 15,yb+txo:print "Y POS":yb=yb+(bh+1)
if MouseSquat=3 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 15,yb+txo:print "Z POS":yb=yb+(bh+1)
if MouseSquat=4 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "RETURN":yb=yb+(bh+1)
yb=0
ink rgb(255,255,255),0
set text size 26
mc=0
if mouseclick()=1 and MouseSquat=1 then EposX#=EposX#+(.1*Pradius#):mc=1
if mouseclick()=2 and MouseSquat=1 then EposX#=EposX#-(.1*Pradius#):mc=1
if mouseclick()=1 and MouseSquat=2 then EposY#=EposY#+(.1*Pradius#):mc=1
if mouseclick()=2 and MouseSquat=2 then EposY#=EposY#-(.1*Pradius#):mc=1
if mouseclick()=1 and MouseSquat=3 then EposZ#=EposZ#+(.1*Pradius#):mc=1
if mouseclick()=2 and MouseSquat=3 then EposZ#=EposZ#-(.1*Pradius#):mc=1
if mouseclick()=1 and MouseSquat=4 then goto MainLoop
if mc=1 then position particle emissions pn, EposX#, EposY#, EposZ#:play sound 2:wait Mwait
set cursor 85,yb:print EposX#:yb=yb+(bh)
set cursor 85,yb:print EposY#:yb=yb+(bh)
set cursor 85,yb:print EposZ#:yb=yb+(bh)
gosub Controls
sync
LOOP
Frequency:
choices=2
while mouseclick()=1:ENDWHILE
DO
yb=0
bw=80
bh=34
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4
yb=0
txo=8
MouseHover=0
if MouseX()<81 then MouseHover=-1
oSquat=MouseSquat
MouseSquat=0
if MouseHover=-1 then MouseSquat=(int(MouseY()/35))+1
if MouseHover=-1 and oSquat<>MouseSquat then if MouseSquat<=choices then play sound 1
set text size 16
if MouseSquat=1 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 15,yb+txo:print "FREQ":yb=yb+(bh+1)
if MouseSquat=2 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "RETURN":yb=yb+(bh+1)
yb=0
ink rgb(255,255,255),0
set text size 26
mc=0
if mouseclick()=1 and MouseSquat=1 then Pfreq#=Pfreq#+1:mc=1
if mouseclick()=2 and MouseSquat=1 then Pfreq#=Pfreq#-1:mc=1
if Pfreq#<0 then Pfreq#=0
if mouseclick()=1 and MouseSquat=2 then goto MainLoop
if mc=1 then set particle emissions pn, Pfreq#:play sound 2:wait Mwait
set cursor 85,yb:print Pfreq#
gosub Controls
sync
LOOP
Velocity:
choices=2
while mouseclick()=1:ENDWHILE
DO
yb=0
bw=80
bh=34
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4
yb=0
txo=8
MouseHover=0
if MouseX()<81 then MouseHover=-1
oSquat=MouseSquat
MouseSquat=0
if MouseHover=-1 then MouseSquat=(int(MouseY()/35))+1
if MouseHover=-1 and oSquat<>MouseSquat then if MouseSquat<=choices then play sound 1
set text size 16
if MouseSquat=1 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 12,yb+txo:print "VELOC":yb=yb+(bh+1)
if MouseSquat=2 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "RETURN":yb=yb+(bh+1)
yb=0
ink rgb(255,255,255),0
set text size 26
mc=0
if mouseclick()=1 and MouseSquat=1 then Pveloc#=Pveloc#+1:mc=1
if mouseclick()=2 and MouseSquat=1 then Pveloc#=Pveloc#-1:mc=1
if mouseclick()=1 and MouseSquat=2 then goto MainLoop
if mc=1 then set particle velocity pn, Pveloc#:play sound 2:wait Mwait
set cursor 85,yb:print Pveloc#
gosub Controls
sync
LOOP
Gravity:
choices=2
while mouseclick()=1:ENDWHILE
DO
yb=0
bw=80
bh=34
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4
yb=0
txo=8
MouseHover=0
if MouseX()<81 then MouseHover=-1
oSquat=MouseSquat
MouseSquat=0
if MouseHover=-1 then MouseSquat=(int(MouseY()/35))+1
if MouseHover=-1 and oSquat<>MouseSquat then if MouseSquat<=choices then play sound 1
set text size 16
if MouseSquat=1 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 15,yb+txo:print "GRAV":yb=yb+(bh+1)
if MouseSquat=2 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "RETURN":yb=yb+(bh+1)
yb=0
ink rgb(255,255,255),0
set text size 26
mc=0
if mouseclick()=1 and MouseSquat=1 then Pgrav#=Pgrav#+1:mc=1
if mouseclick()=2 and MouseSquat=1 then Pgrav#=Pgrav#-1:mc=1
if mouseclick()=1 and MouseSquat=2 then goto MainLoop
if mc=1 then set particle gravity pn, Pgrav#:play sound 2:wait Mwait
set cursor 85,yb:print Pgrav#
gosub Controls
sync
LOOP
SPeed:
choices=2
while mouseclick()=1:ENDWHILE
DO
yb=0
bw=80
bh=34
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4
yb=0
txo=8
MouseHover=0
if MouseX()<81 then MouseHover=-1
oSquat=MouseSquat
MouseSquat=0
if MouseHover=-1 then MouseSquat=(int(MouseY()/35))+1
if MouseHover=-1 and oSquat<>MouseSquat then if MouseSquat<=choices then play sound 1
set text size 16
if MouseSquat=1 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 12,yb+txo:print "SPEED":yb=yb+(bh+1)
if MouseSquat=2 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "RETURN":yb=yb+(bh+1)
yb=0
ink rgb(255,255,255),0
set text size 26
mc=0
if mouseclick()=1 and MouseSquat=1 then Pspeed#=Pspeed#+Pinc#:mc=1
if mouseclick()=2 and MouseSquat=1 then Pspeed#=Pspeed#-Pinc#:mc=1
if mouseclick()=1 and MouseSquat=2 then goto MainLoop
if mc=1 then set particle speed pn, Pspeed#:play sound 2:wait Mwait
set cursor 85,yb:print Pspeed#
gosub Controls
sync
LOOP
Chaos:
choices=2
while mouseclick()=1:ENDWHILE
DO
yb=0
bw=80
bh=34
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4
yb=0
txo=8
MouseHover=0
if MouseX()<81 then MouseHover=-1
oSquat=MouseSquat
MouseSquat=0
if MouseHover=-1 then MouseSquat=(int(MouseY()/35))+1
if MouseHover=-1 and oSquat<>MouseSquat then if MouseSquat<=choices then play sound 1
set text size 16
if MouseSquat=1 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 12,yb+txo:print "CHAOS":yb=yb+(bh+1)
if MouseSquat=2 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "RETURN":yb=yb+(bh+1)
yb=0
ink rgb(255,255,255),0
set text size 26
mc=0
if mouseclick()=1 and MouseSquat=1 then Pchaos#=Pchaos#+.1:mc=1
if mouseclick()=2 and MouseSquat=1 then Pchaos#=Pchaos#-.1:mc=1
if mouseclick()=1 and MouseSquat=2 then goto MainLoop
if mc=1 then set particle chaos pn, Pchaos#:play sound 2:wait Mwait
set cursor 85,yb:print Pchaos#
gosub Controls
sync
LOOP
Floorz:
choices=2
while mouseclick()=1:ENDWHILE
DO
yb=0
bw=80
bh=34
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4
yb=0
txo=8
MouseHover=0
if MouseX()<81 then MouseHover=-1
oSquat=MouseSquat
MouseSquat=0
if MouseHover=-1 then MouseSquat=(int(MouseY()/35))+1
if MouseHover=-1 and oSquat<>MouseSquat then if MouseSquat<=choices then play sound 1
set text size 16
if MouseSquat=1 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 12,yb+txo:print "FLOOR":yb=yb+(bh+1)
if MouseSquat=2 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "RETURN":yb=yb+(bh+1)
yb=0
ink rgb(255,255,255),0
set text size 26
mc=0
if mouseclick()=1 and MouseSquat=1 then mc=1
if mouseclick()=1 and MouseSquat=1 then if Pfloor=1 then Pfloor=0 else Pfloor=1
if mouseclick()=2 and MouseSquat=1 then mc=1
if mouseclick()=2 and MouseSquat=1 then if Pfloor=1 then Pfloor=0 else Pfloor=1
if mouseclick()=1 and MouseSquat=2 then goto MainLoop
if mc=1 then set particle floor pn, Pfloor:play sound 2:wait Mwait
set cursor 85,yb:if Pfloor=1 then print "ON" else if Pfloor=0 then print "OFF"
while mouseclick()<>0
ENDWHILE
gosub Controls
sync
LOOP
Life:
choices=2
while mouseclick()=1:ENDWHILE
DO
yb=0
bw=80
bh=34
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4
yb=0
txo=8
MouseHover=0
if MouseX()<81 then MouseHover=-1
oSquat=MouseSquat
MouseSquat=0
if MouseHover=-1 then MouseSquat=(int(MouseY()/35))+1
if MouseHover=-1 and oSquat<>MouseSquat then if MouseSquat<=choices then play sound 1
set text size 16
if MouseSquat=1 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 20,yb+txo:print "LIFE":yb=yb+(bh+1)
if MouseSquat=2 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "RETURN":yb=yb+(bh+1)
yb=0
ink rgb(255,255,255),0
set text size 26
mc=0
if mouseclick()=1 and MouseSquat=1 then Plife#=Plife#+1:mc=1
if mouseclick()=2 and MouseSquat=1 then Plife#=Plife#-1:mc=1
if mouseclick()=1 and MouseSquat=2 then goto MainLoop
if mc=1 then set particle life pn, Plife#:play sound 2:wait Mwait
set cursor 85,yb:print Plife#
gosub Controls
sync
LOOP
Ghost:
choices=3
while mouseclick()=1:ENDWHILE
DO
yb=0
bw=80
bh=34
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4
yb=0
txo=8
MouseHover=0
if MouseX()<81 then MouseHover=-1
oSquat=MouseSquat
MouseSquat=0
if MouseHover=-1 then MouseSquat=(int(MouseY()/35))+1
if MouseHover=-1 and oSquat<>MouseSquat then if MouseSquat<=choices then play sound 1
set text size 16
if MouseSquat=1 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 15,yb+txo:print "GHOST":yb=yb+(bh+1)
if MouseSquat=2 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 20,yb+txo:print "PCNT":yb=yb+(bh+1)
if MouseSquat=3 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "RETURN":yb=yb+(bh+1)
yb=0
ink rgb(255,255,255),0
set text size 26
og=Pghost
mc=0
if mouseclick()=1 and MouseSquat=1 then Pghost=Pghost+1:mc=1
if mouseclick()=2 and MouseSquat=1 then Pghost=Pghost-1:mc=1
if mouseclick()=1 and MouseSquat=2 then Pgpct=Pgpct+1:mc=1:wait Mwait
if mouseclick()=2 and MouseSquat=2 then Pgpct=Pgpct-1:mc=1:wait Mwait
if mouseclick()=1 and MouseSquat=3 then goto MainLoop
if Pghost>6 then Pghost=0
if Pghost<0 then Pghost=6
if Pgpct>100 then Pgpct=100
if Pgpct<0 then Pgpct=0
if mc=1 then gosub ReSpawn
if Pghost=6 then pg$=" (OFF)" else pg$=" (ON)"
set cursor 85,yb:print Pghost;pg$:yb=yb+(bh)
set cursor 85,yb:print Pgpct;"%"
gosub Controls
sync
if og<>Pghost
while mouseclick()<>0
ENDWHILE
ENDIF
LOOP
Radius:
choices=2
while mouseclick()=1:ENDWHILE
DO
yb=0
bw=80
bh=34
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4
yb=0
txo=8
MouseHover=0
if MouseX()<81 then MouseHover=-1
oSquat=MouseSquat
MouseSquat=0
if MouseHover=-1 then MouseSquat=(int(MouseY()/35))+1
if MouseHover=-1 and oSquat<>MouseSquat then if MouseSquat<=choices then play sound 1
set text size 16
if MouseSquat=1 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "RADIUS":yb=yb+(bh+1)
if MouseSquat=2 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "RETURN":yb=yb+(bh+1)
yb=0
ink rgb(255,255,255),0
set text size 26
mc=0
if mouseclick()=1 and MouseSquat=1 then Pradius#=Pradius#+1:mc=1
if mouseclick()=2 and MouseSquat=1 then Pradius#=Pradius#-1:mc=1
if mouseclick()=1 and MouseSquat=2 then goto MainLoop
if mc=1 then gosub ReSpawn
set cursor 85,yb:print Pradius#
gosub Controls
sync
if mouseclick()<>0 then wait Mwait
LOOP
MouseWait:
choices=2
while mouseclick()=1:ENDWHILE
DO
yb=0
bw=80
bh=34
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4:yb=yb+(bh+1)
box 0,yb,bw,yb+bh,colr1, colr2,colr3, colr4
yb=0
txo=8
MouseHover=0
if MouseX()<81 then MouseHover=-1
oSquat=MouseSquat
MouseSquat=0
if MouseHover=-1 then MouseSquat=(int(MouseY()/35))+1
if MouseHover=-1 and oSquat<>MouseSquat then if MouseSquat<=choices then play sound 1
set text size 16
if MouseSquat=1 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 15,yb+txo:print "DELAY":yb=yb+(bh+1)
if MouseSquat=2 then ink rgb(200,30,30),0 else ink rgb(255,255,255),0
set cursor 10,yb+txo:print "RETURN":yb=yb+(bh+1)
yb=0
ink rgb(255,255,255),0
set text size 26
mc=0
if mouseclick()=1 and MouseSquat=1 then Mwait=Mwait+1:mc=1
if mouseclick()=2 and MouseSquat=1 then Mwait=Mwait-1:mc=1
if mouseclick()=1 and MouseSquat=2 then goto MainLoop
if Mwait <0 then Mwait=0
set cursor 85,yb:print Mwait
if mc=1 then play sound 2:wait Mwait
gosub Controls
sync
LOOP
Element:
Ele=Ele+1:if Ele=7 then Ele=1
while mouseclick()=1:ENDWHILE
if image exist(1)=1 then delete image 1
if particles exist(1)=1 then delete particles 1
x=0:y=0
for paint=1 to (20*20)
if Ele=1 then dot x, y, rgb(rnd(100)+155, rnd(100)+55, 0):Etype$="FLAME":es=15
if Ele=2 then sm=rnd(40)+35:dot x, y, rgb(sm,sm,sm):Etype$="SMOKE":es=15
if Ele=3 then dot x, y, rgb(rnd(10)+35, rnd(25)+55, rnd(100)+155):Etype$="WATER":es=15
if Ele=4 then dot x, y, rgb(255,255,255):Etype$="SNOW":es=16
if Ele=5 then dot x, y, rgb(rnd(40), rnd(75)+150, rnd(40)):Etype$="ECTO":es=18
if Ele=6 then dot x, y, rgb(rnd(75)+150, rnd(60), rnd(55)+200):Etype$="ETHER":es=15
x=x+1:if x>19 then x=0:y=y+1
next
get image 1, 0,0,19,19:
gosub ReSpawn
return
Respawn:
if particles exist(1)=1 then delete particles 1
make particles 1,1,Pfreq#, Pradius#:play sound 2
position particles 1, px#, py#, pz#:position particle emissions pn, EposX#, EposY#, EposZ#:set particle emissions pn,Pfreq#
position camera cx#, cy#, cz#:set particle velocity 1, Pveloc#:set particle gravity 1, Pgrav#
set particle speed 1, Pspeed#:set particle chaos 1, Pchaos#:set particle life 1, Plife#
set particle floor pn, Pfloor:if Pghost<>6 then ghost particles on 1, Pghost, Pgpct
position camera cx#, cy#, cz#:point camera px#, py#, pz#
return
Random:
Pfreq#=rnd(100)+1:Pveloc#=rnd(100):Pgrav#=rnd(100)-rnd(100):Pspeed#=rnd(30000)*.00001-rnd(30000)*.00001:EposY#=(rnd(30000)*.00001-rnd(30000)*.00001)*Pradius#
Pchaos#=rnd(10)-rnd(10):Pfloor=rnd(1):Plife#=rnd(100)+1:Pghost=rnd(1)+5:Pgpct=rnd(100)+1:Pradius#=rnd(200)+1
while mouseclick()=1:ENDWHILE
return
Controls:
cx#=camera position x():cy#=camera position y():cz#=camera position z()
if scancode()=201 then position camera cx#, cy#-(.02*Pradius#), cz#
if scancode()=209 then position camera cx#, cy#+(.02*Pradius#), cz#
control camera using arrowkeys 0,(.25*Pradius#),1
if omz<mousez()then move camera (.5*Pradius#)
if omz>mousez()then move camera -(.5*Pradius#)
omz=mousez()
return
D.D.