forked from PAK9/PicoWorldRace
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathparticle.lua
69 lines (62 loc) · 1.74 KB
/
particle.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
------------------ Particle.lua
-- 1.sx, 2.sy, 3.sw, 4.sh, 5.life 6.dx 7.dy 8.dsc 9. sc
PDEF=split([[
27, 99, 5, 5, 0.5, -0.5,0.25, -0.05, 1 /
27, 99, 5, 5, 0.5, 0.5, 0.25, -0.05, 1 /
83, 23, 7, 7, 0.2, 0.15, 0.25, -0.02, 1.2 /
86, 48, 4, 4, 1, 0.6, -0.5, -0.025, 1 /
85, 53, 4, 4, 1, -0.6,-0.5, -0.025, 1 /
80, 48, 3, 3, 0.2, -2, -2, -0.005, 0.4 /
113,71, 4, 4, 0.2, 2, -0.5, -0.005, 0.5 /
83, 48, 4, 4, 0.3, 0.25,-0.5, -0.02, 0.8 /
27, 99, 5, 5, 4, 0.25,-0.5, 0.1, 0.2 /
80, 52, 5, 5, 0.8, 0, -0.01, -0.05, 1 /
80, 52, 5, 5, 0.8, 0, -0.01, -0.05, 1 /
]],"/")
sPartic, sParticT, sParticSc, sParticX, sParticY, NextPartic = {},{},{},{},{},1
function InitParticles()
for i=1, #PDEF do PDEF[i]=split(PDEF[i]) end
for i=1,40 do
sPartic[i] = 0
end
end
function AddParticle( p, x, y )
srand( time() )
sPartic[NextPartic] = p
sParticT[NextPartic] = time()
sParticSc[NextPartic] = 1
sParticX[NextPartic] = x
sParticY[NextPartic] = y
NextPartic=(NextPartic+1)%#sPartic+1
end
function ClearParticles()
for i=1, #sPartic do
sPartic[i] = 0
end
end
function UpdateParticles()
--npart=0
for i=1, #sPartic do
local p = sPartic[i]
if p != 0 then
--npart += 1
srand(p)
sParticSc[i] += ( PDEF[p][8] + rnd(0.5) * PDEF[p][8] )
sParticX[i] += ( PDEF[p][6] + rnd(0.5) * PDEF[p][6] )
sParticY[i] += ( PDEF[p][7] + rnd(0.5) * PDEF[p][7] )
if sParticSc[i] <= 0 or time() - sParticT[i] > PDEF[p][5] then
sPartic[i] = 0
end
end
end
end
function RenderParticles()
for i=1, #sPartic do
local p = sPartic[i]
if p != 0 then
local ssc=sParticSc[i]*10*PDEF[p][9]
local rrect= { sParticX[i] - ssc * 0.5, sParticY[i] - ssc * 0.5, ssc, ssc }
sspr( PDEF[p][1], PDEF[p][2], PDEF[p][3], PDEF[p][4], rrect[1], rrect[2], rrect[3], rrect[4] )
end
end
end