def draw()
@burst.times{emitParticle()} if(@ticks%@rate == 0)
@tex.bind
w, h = @tex.w, @tex.h
GL.Begin(GL::QUADS)
@parts.each do|part|
v = @func.value(part, @ticks - part.t)
l = life(part)
li = 1.0 - l
GL.Color(
@colora[0]*li + @colorb[0]*l,
@colora[1]*li + @colorb[1]*l,
@colora[2]*li + @colorb[2]*l,
@colora[3]*li + @colorb[3]*l
)
r = (@smax - @smin)*l + @smin
GL.TexCoord(0, 0); GL.Vertex(v.x - r, v.y - r)
GL.TexCoord(w, 0); GL.Vertex(v.x + r, v.y - r)
GL.TexCoord(w, h); GL.Vertex(v.x + r, v.y + r)
GL.TexCoord(0, h); GL.Vertex(v.x - r, v.y + r)
end
GL.End()
@ticks += 1
end