Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sin=math.sin
- cos=math.cos
- exp=math.exp
- pow=math.pow
- random=math.random
- sqrt=math.sqrt
- atan2=math.atan2
- function drawCircle(id,arg)
- local point1,point2,particle=arg[1],arg[2],arg[3]
- r=sqrt(pow((point1.x-point2.x),2)+pow((point1.y-point2.y),2))
- res=1-r*pow(10,-2)
- if(res<0.1)then res =0.04 end
- for i=0,2*math.pi,res do
- tfm.exec.displayParticle(particle,point1.x+r*cos(i),point1.y+r*sin(i),random(-1,1),random(-1,1),0,0)
- end
- end
- function drawButterfly(id,arg)
- local x,y,particles=arg[1],arg[2],arg[3]
- for t=0,10,0.09 do
- velocityEffect(x,y,x+(sin(t)*(exp(cos(t))-2*cos(4*t)-5*pow(sin(t/12),5))*-15),y+(cos(t)*(exp(cos(t))-2*cos(4*t)-5*pow(sin(t/12),5))*-15),particles)
- end
- end
- function drawParam1(id,arg)
- local x,y,a,b,c,d,particles=arg[1],arg[2],arg[3],arg[4],arg[5],arg[6],arg[7]
- local j,k=3,3
- for t=0,10,0.1 do
- velocityEffect(x,y,x+(cos(a*t)-pow(cos(b*t),j))*20,y+(sin(c*t)-pow(sin(d*t),k))*20,particles)
- end
- end
- function drawParam2(id,arg)
- local x,y,k,a,m,particles=arg[1],arg[2],arg[3],arg[4],arg[5],arg[6]
- local b=a/k
- for t=0,30,0.5 do
- velocityEffect(x,y,x+((a-b)*cos(t)+b*cos(t*((a/b)-1)))*m,y+((a-b)*sin(t)-b*sin(t*((a/b)-1)))*m,particles)
- end
- end
- function drawLines(id,arg)
- local x,y=arg[1],arg[2]
- local particles={13,11,9,2,1}
- for t=-50,50,3 do
- tfm.exec.displayParticle(table.random(particles),x+t,y+t-30,random(-1,1),random(-1,1),0,0)
- tfm.exec.displayParticle(table.random(particles),x+t,y-t+30,random(-1,1),random(-1,1),0,0)
- tfm.exec.displayParticle(table.random(particles),x+t,y-t-30,random(-1,1),random(-1,1),0,0)
- tfm.exec.displayParticle(table.random(particles),x+t,y+t+30,random(-1,1),random(-1,1),0,0)
- end
- end
- function drawCircleVelocity(id,arg)
- local x,y,particles=arg[1],arg[2],{13,11,9,2,1}
- for i=0,360,20 do
- tfm.exec.displayParticle(table.random(particles),x,y,cos(math.pi*i/180)*-2,-sin(math.pi*i/180)*-2,0,0)
- end
- x,y=x+random(-40,40),y+random(-40,40)
- for i=0,360,20 do
- tfm.exec.displayParticle(table.random(particles),x,y,cos(math.pi*i/180)*-3,-sin(math.pi*i/180)*-3,0,0)
- end
- end
- function drawHeart(id,arg)
- local x,y,particles=arg[1],arg[2],{13,11,9,2,1,30,31}
- for t=-60,60,3 do
- if t<0 then
- l=-t
- x1=0.01*((-pow(l,2))+40*l+1200)*sin(math.pi*l/180)
- y1=-0.01*((-pow(l,2))+40*l+1200)*cos(math.pi*l/180)
- else
- x1=-0.01*((-pow(t,2))+40*t+1200)*sin(math.pi*t/180)
- y1=-0.01*((-pow(t,2))+40*t+1200)*cos(math.pi*t/180)
- end
- tfm.exec.displayParticle(table.random(particles),x1*5+x,y1*5+y,table.random({-0.5,0.5}),table.random({-0.5,0.5}),0,0)
- end
- end
- function drawCurve(id,arg)
- local x,y,particles=arg[1],arg[2],arg[3]
- for j=1,random(2,3) do
- for i=0,100,2 do
- tfm.exec.displayParticle(table.random(particles),x+cos(i)*10,y-i,table.random({-0.5,0.5}),random(-1,1),0,0)
- end
- end
- end
- function drawBasic(id,arg)
- tfm.exec.displayParticle(10,arg[1],arg[2],0,0,0,0)
- tfm.exec.displayParticle(12,arg[1]+random(-20,20),arg[2]+random(-20,20),0,0,0,0)
- end
- function drawCirclePlus(id,arg)
- local last,particles=0,arg[3]
- for j=1,random(2,3)do
- rand=random(-40,40)
- for i=1,random(2,3) do
- repeat
- particleId=table.random(particles)
- until particleId~=last
- last=particleId
- drawCircle(id,{{x=arg[1]+rand,y=arg[2]},{x=arg[1]+rand+(i+1)*10,y=arg[2]},last})
- end
- arg[1]=arg[1]+random(-40,40)
- end
- end
- function velocityEffect(xS,yS,xE,yE,particles)
- local angle = atan2(yE - yS, xE - xS)
- tfm.exec.displayParticle(table.random(particles),xE,yE,cos(angle),sin(angle),0,0)
- end
- fireworksTable={drawBasic,drawHeart,drawLines,drawParam1,drawParam1,drawParam1,drawCurve,drawCirclePlus,drawCircleVelocity,drawParam1,drawParam1,drawParam1,drawParam1,drawParam1,drawParam1}
- glitter={13,11,9,2,1}
- fireworksArgs={{0,-130},{0,-130},{0,-130},{0,-130,7,1,7,1,glitter},{0,-130,1,5,1,5,glitter},{0,-130,1,3,3,1,glitter},{0,-130,glitter},{0,-130,glitter},{0,-130},{0,-130,4,1,4,1,glitter},
- {0,-130,2,1,2,1,glitter},{0,-130,1,2,1,2,glitter},{0,-130,1,4,1,4,glitter},{0,-130,4,1,4,1,glitter},{0,-130,1,3,3,1,glitter}}
- function fireworks(boxId,time)
- for i=0,math.random(0,1) do
- local choice,args=random(1,#fireworksTable),{}
- for k,v in pairs(fireworksArgs[choice])do table.insert(args,v) end
- args[1],args[2]=tfm.get.room.objectList[boxId].x+math.random(-40*i,40*i)+fireworksArgs[choice][1],tfm.get.room.objectList[boxId].y+math.random(-40*i,-20*i)+fireworksArgs[choice][2]
- system.newTimer(fireworksTable[choice],time+400+i*200,false,args)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement