'global
time = 0
gravity = -1
xspread = 30
yspread = 50
sinstretch = 50
'pulltoorigin = 0.2 '1 is no pull, below 1 is towards, above one is away
maxparticles = 10000
particle
= 0:
DO: particle
= particle
+ 1 r = (r / xspread) * (r / xspread) * xspread
p(particle).ox = r
r = (r / yspread) * (r / yspread) * yspread
r = (1 - ((r / yspread) * (r / yspread))) * yspread
p(particle).oy = r
p(particle).w = 1
p
(particle
).s
= (RND * 2) p
(particle
).c
= _RGBA(255, 0 + (RND * 140), 0, RND * 255) p
(particle
).d
= (xspread
* 2) + ((RND * (xspread
/ 5)) - (xspread
/ 10)) p
(particle
).f
= 100 + (RND * 50)
time = time + 1
particle
= 0:
DO: particle
= particle
+ 1 dif = (p(particle).y - p(particle).oy)
pulltoorigin = (dif * (xspread * xspread / 10000) / (xspread / 2))
'pulltoorigin = 1
dev = p(particle).d * (p(particle).f / dif)
sinoffset
= ((p
(particle
).ox
/ xspread
) * _PI * 2) p
(particle
).x
= originx
+ ((p
(particle
).ox
+ (SIN((dif
/ sinstretch
) - sinoffset
) * dev
)) * pulltoorigin
) p(particle).y = originy + p(particle).oy + (p(particle).s * time * gravity)
div = p(particle).x - originx
'p(particle).c = _RGBA(_RED(p(particle).c), _GREEN(p(particle).c), _BLUE(p(particle).c), 255 * (1 - (div / (xspread / 2))))
CIRCLE (p
(particle
).x
, p
(particle
).y
), p
(particle
).w
, p
(particle
).c