[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/smallbasic/smallbasic.github.io/master/samples/node/1340.bas [Back]  [Original]

'Rotating Stars Mouse Chaser.bas for SmallBASIC 0.12.0 2015-11-09 MGA/B+
'code is based on code: mouse chaser by tsh73
'for the Just Basic contest, November 2008, I am 7 years later

nPoints = 20
dim x(nPoints), y(nPoints)
for i = 1 to nPoints
   x(i) = xmax
   y(i) = ymax     'set it offscreen
next
pen on
color 9,0
while 1'len(inkey)=0
   cls
   twist+=.05
   mx=pen(4):my=pen(5)
   for i = 1 to nPoints
      if i = 1 then   'first sees mouse
         dx=mx-x(i)
         dy=my-y(i)
         v=4
      else            'others see previous
         dx=x(i-1)-x(i)
         dy=y(i-1)-y(i)
         v=0.6*v+0.2*3*(2-i/nPoints) 'use 0.8 v of previous, to pick up speed
      end if
      r=sqr(dx^2+dy^2)
      dxN=dx/r
      dyN=dy/r
      x(i) = x(i)+v*dxN
      y(i) = y(i)+v*dyN
      drawstar
   next i
   showpage
   delay 10
wend
input OK

sub drawstar()
  local sp,s,t,u,j,b,v,w
  sp=(npoints+1-i)*2+3  'star points when i is low, points are high
  s=5*(50^(1/npoints))^(npoints+1-i)
  t=x(i)+s*cos(0+twist)
  u=y(i)+s*sin(0+twist)
  for j=1 to sp
    b+=int(sp/2)*2*pi/sp
    v=x(i)+s*cos(b+twist)
    w=y(i)+s*sin(b+twist)
    line t,u,v,w,14
    t=v:u=w
  next
end 

Web Proxy Viewer  |  New URL  |  Original Page