#uselib"dsoundex.dll"
#func	timer	timer	$0
screen 0,640,480,1
randomize
buffer 2,72,24,1
max=512
dim f,max
dim v,max
dim w,max
dim x,max
dim y,max
cls 4
font"MS ゴシック",24
pos 0,0
color 255,0,0
mes"○"
pos 24,0
color 0,255,0
mes"○"
color 0,0,255
pos 48,0
mes"○"
gsel 0
gmode 2
timer
sr=stat
font"MS ゴシック",16,1
qq=32

*main
slow=0
redraw 2
timer
tr=stat
color 0,0,0
boxf 0,0,639,479
pos 0,0
color 255,255,255
mes"Fps:"+frame
pos 128,0
mes"Objects:"+disp+"/"+objs
disp=0
stick a,16
if objs<max : gosub *shot
if a=128 : end
repeat objs
i=cnt
x.i+=v.i
y.i+=w.i
if (x.i<0) | (x.i>639) : v.i=-v.i
if (y.i<0) | (y.i>479) : w.i=-w.i
loop
repeat objs
i=cnt
pos x.i-12,y.i-12
gcopy 2,i\3*24,0,24,24
disp++
timer
tm=stat
if tm-tr>qq : slow=1:break
loop
redraw 1
timer
tz=stat
qq=32-(tz-tm)
if slow=1 : goto *lp
*wt
timer
tm=stat
if tm-tr<33 : goto *wt
*lp
fr++
if tm-sr>999 : frame=fr:fr=0:sr=tm:sec++
await 0
goto *main

*shot
rnd o,2
rnd p,2
x.objs=o*639
y.objs=p*479
rnd o,17
rnd p,17
v.objs=o-8
w.objs=p-8
f.objs=1
objs++
return