function param1() return "num", 2, 100, 2 end function param2() return "interval", 1, 100, 10 end function main( x, y, p ) if firstDraw then firstDrawX = x firstDrawY = y end local w = bs_width() if w < 0.25 then w = 0.25 end local updateDist = w / 4 if w > 20 then updateDist = w/10 end if w > 100 then updateDist = w/14 end if not firstDraw then local distance = bs_distance( lastDrawX - x, lastDrawY - y ) if distance < updateDist then return 0 end end local r,g,b = bs_fore() local i for i=0,bs_param1()-1 do bs_ellipse( x, y + bs_param2()*i*2, w,w, 0, r,g,b,255 ) end lastDrawX = x lastDrawY = y firstDraw = false return 1 end lastDrawX = 0 lastDrawY = 0 firstDraw = true firstDrawX = 0 firstDrawY = 0