So working on my sin and cos knowledge, I decided to just make a random script... and well... it's random alright.
lua code:
x = 0
y = 0
length = 50
angle = 0.0
angle_stepsize = .45
angtbl = {}
w,h = get_window_size()
lenset = 200

while angle < 2 * math.pi do

table.insert(angtbl,{x=lenset * math.cos(angle) + w/2, y=lenset *math.sin(angle) + h/2})

angle = angle + .1
end



add_hook("draw2d","y_test",function()

set_color(0,0,0,1)

draw_quad(0,0,w,h)
for i = 1,#angtbl do

set_color(math.random(),math.random(),math.random(),1)

draw_quad(angtbl[i].x, angtbl[i].y,4,4)
angtbl[i].x = angtbl[i].x + math.cos(math.random(0,360))*2
angtbl[i].y = angtbl[i].y + math.sin(math.random(0,360))*2

end
lenset = lenset + (150 - lenset/2)*.1

end)





also: this is good for random "explosion" particles:

lua code:
x = 0
y = 0
length = 50
angle = 0.0
angle_stepsize = .45
angtbl = {}
w,h = get_window_size()
lenset = 0
size = 4
oldtime = os.clock()

while angle < 2 * math.pi do

table.insert(angtbl,{x=lenset * math.cos(angle) + w/2, y=lenset *math.sin(angle) + h/2, dirx = math.cos(angle), diry = math.sin(angle)})
angle = angle + math.random()*2
end



add_hook("draw2d","y_test",function()
set_color(0,0,0,1)
draw_quad(0,0,w,h)
for i = 1,#angtbl do

set_color(math.random(),math.random(),math.random(),1)

draw_quad(angtbl[i].x, angtbl[i].y,size,size)
angtbl[i].x = angtbl[i].x + angtbl[i].dirx*4
angtbl[i].y = angtbl[i].y + angtbl[i].diry*4
if(size <= 0.01)then
table.remove(angtbl,i)
end
end
newtime = os.clock()
if(newtime > oldtime + .1)then
size = size - 1
oldtime = os.clock()
end

end)




aaaaand I added gravity because why not.

lua code:
x = 0
y = 0
length = 50
angle = 0.0
angle_stepsize = .45
angtbl = {}
w,h = get_window_size()
lenset = 0
size = 4
clicked = true
cursorx = 0
cursory = 0
gravity = 50





add_hook("draw2d","y_test",function()
set_color(0,0,0,1)
draw_quad(0,0,w,h)
if(clicked)then
while angle < 2 * math.pi do
table.insert(angtbl,{randgrey = math.random() * 2 - 2/2 + .5, gravity = 0, size = 7, x=lenset * math.cos(angle) + cursorx, y=lenset *math.sin(angle) + cursory, dirx = math.cos(angle), diry = math.sin(angle)})
angle = angle + math.random()*2
end
end
for i = 1,#angtbl do
set_color(math.random(),math.random(),math.random(),1)

draw_quad(angtbl[i].x, angtbl[i].y,angtbl[i].size,angtbl[i].size)
angtbl[i].size = angtbl[i].size + (0 - angtbl[i].size)*.05
angtbl[i].x = angtbl[i].x + angtbl[i].dirx*4
angtbl[i].y = (angtbl[i].y + angtbl[i].diry*4) + angtbl[i].gravity
angtbl[i].gravity = angtbl[i].gravity + (gravity - angtbl[i].gravity)*.005
if(angtbl[i].size <=0.01)then
table.remove(angtbl,i)
end
end

end)
function getmousepos(x,y)
cursorx = x
cursory = y
end
function mouseclicked(button,x,y)
clicked = true
cursorx = x
cursory = y
end
function mouseunclicked(button,x,y)
cursorx = x
cursory = y
angle = 0
end
add_hook("mouse_move","mousepos", getmousepos)
add_hook("mouse_button_down","mouseclicked",mouseclicked)
add_hook("mouse_button_up", "unclicked", mouseunclicked)
Last edited by Stupinator; Aug 23, 2015 at 10:08 AM.
Former Item Forger