not saw a list of particles, but here is my code from own particle emitter
some useful commands
GetSpriteInBox ( iSprite, x1, y1, x2, y2 )
GetSpriteInCircle ( iSprite, x1, y1, radius )
type TParticle
spr as integer
img as integer
x as float
y as float
xs as float
ys as float
r as integer
g as integer
b as integer
start as integer
live as integer
used as integer
angle as float
size as float
endtype
#constant ParticleMax=180 //60
global ParticleParameter as TParticle
global ParticleUsed
ParticleUsed=0
global ParticleIndex
ParticleIndex=0
global imgParticleDot
imgParticleDot=-1
global imgParticleStar
imgParticleStar=-1
function ParticleInit()
imgParticleDot=LoadImage("ParticleDot.png" )
imgParticleStar=LoadImage("ParticleStar.png" )
endfunction
function ParticleNewStar(x#,y#,xs#,ys#,start,live,index)
//ParticleParameter as TParticle
ParticleParameter.spr=0
ParticleParameter.img=imgParticleStar
ParticleParameter.x=x#
ParticleParameter.y=y#
ParticleParameter.xs=xs#
ParticleParameter.ys=ys#
ParticleParameter.r=255
ParticleParameter.g=255
ParticleParameter.b=255
ParticleParameter.start=start
ParticleParameter.live=live
ParticleParameter.used=1
ParticleParameter.angle=RandomFloat(3.0)
ParticleParameter.size=4.0
ParticleNew(ParticleParameter)//imgParticleStar,x#,y#,xs#,ys#,start,live,255,255,255,0.0)//,RandomFloat(0.01))
endfunction
function ParticleNewDot(x#,y#,xs#,ys#,start,live,index)
//ParticleParameter as TParticle
ParticleParameter.spr=0
ParticleParameter.img=imgParticleDot
ParticleParameter.x=x#
ParticleParameter.y=y#
ParticleParameter.xs=xs#
ParticleParameter.ys=ys#
ParticleParameter.r=Map[index].r
ParticleParameter.g=Map[index].g
ParticleParameter.b=Map[index].b
ParticleParameter.start=start
ParticleParameter.live=live
ParticleParameter.used=1
ParticleParameter.angle=0.0
ParticleParameter.size=3.0
//r=Map[index].r
//g=Map[index].g
//b=Map[index].b
ParticleNew(ParticleParameter) //imgParticleDot,x#,y#,xs#,ys#,start,live,r,g,b,0.0)
endfunction
//hatte Probleme mit mehr als 9 Parameter^^
function ParticleNew(obj as TParticle) // img,x#,y#,xs#,ys#,start,live,r,g,b,angle#)
//Bild
//Position
//Speed
//Start Count >0
//Frames Lebenszeit
//Index wegen Farbe
ParticleFindFree()
if Particle[ParticleIndex].used=0
Particle[ParticleIndex].spr=0
Particle[ParticleIndex].img=obj.img
Particle[ParticleIndex].x=obj.x
Particle[ParticleIndex].y=obj.y
Particle[ParticleIndex].xs=obj.xs
Particle[ParticleIndex].ys=obj.ys
Particle[ParticleIndex].r=obj.r
Particle[ParticleIndex].g=obj.g
Particle[ParticleIndex].b=obj.b
Particle[ParticleIndex].start=obj.start
Particle[ParticleIndex].live=obj.live
Particle[ParticleIndex].used=obj.used
Particle[ParticleIndex].angle=obj.angle
Particle[ParticleIndex].size=obj.size
endif
ParticleIndex=ParticleIndex+1
if ParticleIndex>ParticleMax then ParticleIndex=0
endfunction
function ParticleFindFree()
c=0
do
if Particle[ParticleIndex].used=0
exit
endif
ParticleIndex=ParticleIndex+1
if ParticleIndex>ParticleMax then ParticleIndex=0
c=c+1
if c=ParticleMax then exit
loop
endfunction
function ParticleUpdate()
for p=0 to ParticleMax
if Particle[p].used=1
//------------------------------ Start
if Particle[p].start>0
Particle[p].start=Particle[p].start-1
if Particle[p].start=0
Particle[p].spr=createsprite(Particle[p].img)
setspritesize(Particle[p].spr,Particle[p].size,Particle[p].size)
setspritepositionbyoffset(Particle[p].spr,Particle[p].x,Particle[p].y)
setspritecolor(Particle[p].spr,Particle[p].r,Particle[p].g,Particle[p].b,255)
setspritedepth(Particle[p].spr,10)
ParticleUsed=ParticleUsed+1
endif
endif
//------------------------------ Move & Turn
if Particle[p].start=0
spr=Particle[p].spr
if spr
x#=getspritexbyoffset(spr)+Particle[p].xs
y#=getspriteybyoffset(spr)+Particle[p].ys
setspritepositionbyoffset(spr,x#,y#)
setspriteangle(spr,getspriteangle(spr)+Particle[p].angle) //Turn
endif
endif
//------------------------------ End
if Particle[p].live>0
Particle[p].live=Particle[p].live-1
if Particle[p].live=0
ParticleFree(p)
endif
endif
//------------------------------
endif
next
endfunction
function ParticleFree(p)
if Particle[p].spr
deletesprite(Particle[p].spr)
Particle[p].spr =0
Particle[p].used=0
ParticleUsed=ParticleUsed-1
endif
endfunction
function ParticleRemove()
for i=0 to ParticleMax
ParticleFree(i)
next
endfunction
function ParticleFreeAll()
ParticleRemove()
deleteimage(imgParticleDot)
deleteimage(imgParticleStar)
endfunction
AGK (Steam) V2.0.20 : Windows 10 Pro 64 Bit : AMD (16.3.2) Radeon R7 265 : Mac mini OS X 10.10 (Yosemite)