This one will only work in dbp, but builds further on yours.
hide mouse
sync on:sync rate 0
color backdrop rgb(0,0,0)
for n = 1 to 25
ink n*10,0
for d = 0 to 8
circle 10,10,d
circle 11,10,d
circle 10,11,d
circle 11,11,d
next d
get image n,0,0,20,20
next n
DIM square#(25,1)
x=0:y=1
cls 0:wait 10
DO
for n = 1 to 25
if n < 25
square#(n,x)=curvevalue(square#(n+1,x),square#(n,x),26-n)
square#(n,y)=curvevalue(square#(n+1,y),square#(n,y),26-n)
else
square#(25,x)=curvevalue(mousex(),square#(25,x),26-n)
square#(25,y)=curvevalue(mousey(),square#(25,y),26-n)
endif
`bind to screen
if square#(n,x)>screen width()-20 then square#(n,x)=screen width()-20
if square#(n,y)>screen height()-20 then square#(n,y)=screen height()-20
sprite n,square#(n,x),square#(n,y),n
offset sprite n, 10, 10
if n < 25
d# = sqrt( ( ( square#(n+1,x) - square#(n,x) ) ^ 2 ) + ( ( square#(n+1,y) - square#(n,y) ) ^ 2 ) )
a# = 90 - atanfull( square#(n+1,x) - square#(n,x), square#(n+1,y) - square#(n,y) )
size sprite n, 20 + d#*4, 20
rotate sprite n, a# + ( n * 30 )
endif
next n
sync
LOOP
Fiddle with the size/rotate sprite lines to change wacky factor.
Shove your shitty MMORPG idea and get me a drink.