open window 640,512
dim ax(2),avy(2),avyd(2)
for a=0 to 2
 ax(a)=a*200
 avy(a)=ran(20)
 avyd(a)=ran(10)
next a

repeat
setdrawbuf cb:cb=1-cb:setdispbuf cb
clear window
for a=0 to 2
 if mod(a,2)=0 then
  setrgb 1,255,0,0
 else
  setrgb 1,0,0,255
 fi

 drawblob(ax(a),0,ax(a)+200,0,0,avy(a),0,avy(a))

 avy(a)=avy(a)+avyd(a)
 avyd(a)=avyd(a)+1
 if avy(a)>650 then 
  avyd(a)=-int(avyd(a)*0.7)
  avy(a)=avy(a)+avyd(a)
  if avyd(a)>-6 avyd(a)=avyd(a)*6
 fi
next a
until (1=2)

sub drawblob(ax,ay,dx,dy,avx,avy,dvx,dvy)
bx=ax+avx:by=ay+avy:cx=dx+dvx:cy=dy+dvy
ox=ax:oy=ay:for t=0 to 1 step 0.05:aa=t:bb=1-t
x=ax*bb^3+3*bx*bb^2*aa+(3*cx)*bb*aa^2+dx*aa^3
y=ay*bb^3+3*by*bb^2*aa+(3*cy)*bb*aa^2+dy*aa^3
setrgb 1,0,oy/2,0:setrgb 2,0,0,0:setrgb 3,0,0,0
gtriangle ox,oy to ox,0 to x,0:setrgb 3,0,y/2,0
gtriangle ox,oy to x,0 to x,y:ox=x:oy=y:next t:end sub



