function param1() return "interval", 10, 100, 50 end function param2() return "color rnd", 0, 100, 50 end function param3() return "length", 1, 100, 50 end function main( x, y, p ) local w = bs_width_max() * 0.25 if w < 5 then w = 5 end if not firstDraw then local distance = bs_distance( lastDrawX - x, lastDrawY - y ) if distance < w * bs_param1()/20 then return 0 end end local dx,dy = bs_dir() local nx,ny = bs_normal() local num = math.random( 0, 3 ) local i for i = 0,num do local idx = bs_grand(0,0.8)*w local rnd = 0.5 + math.random()+bs_param3()/100 local kai = 3.14/4*bs_grand(-0.2,0.5) bs_bezier_begin( 0, 0 ) bs_bezier_c( 0.1, -0.4, 0.0, -0.8, -0.6, -1.2 ) bs_bezier_c( 0.1, -0.9, 0.2, -0.4, 0, 0 ) bs_bezier_mul( w*5, w*rnd*5 ) bs_bezier_rotate( kai ) bs_bezier_move( x+idx/2, y+idx ) local r,g,b = bs_forebg( 1.0 - math.random()*bs_param2()/100 ) bs_fill( r,g,b, 255 ) end local num = math.random( 0, 3 ) local i for i = 0,num do local idx = bs_grand(0,1.2)*w local rnd = 0.2 + math.random()+bs_param3()/100 local kai = 3.14/4*bs_grand(-0.2,0.5) bs_bezier_begin( 0, 0 ) bs_bezier_c( -0.2, -0.7, -0.2, -1.3, 0.1, -2.0 ) bs_bezier_c( -0.3, -1.2, -0.3, -0.6, 0, 0 ) bs_bezier_mul( w*2, w*rnd*2 ) bs_bezier_rotate( kai ) bs_bezier_move( x+idx*0.5, y+idx ) local r,g,b = bs_forebg( 1.0 - math.random()*bs_param2()/100 ) bs_fill( r,g,b, 255 ) end lastDrawX = x lastDrawY = y firstDraw = false return 1 end lastDrawX = 0 lastDrawY = 0 firstDraw = true