-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathProgressBar.lua
48 lines (41 loc) · 1.13 KB
/
ProgressBar.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
function ProgressBar(intiPercent, px, py, pz)
local pgb = {
px = px or 50,
py = py or 2,
pz = pz or 0,
value = intiPercent or 0,
}
scene.setenv({
camtype = 'ortho'
})
pgb.border = scene.addobj('polyline', {
vertices = {-pgb.px, -pgb.py, pgb.pz, -pgb.px, pgb.py, pgb.pz, pgb.px, pgb.py, pgb.pz, pgb.px, -pgb.py, pgb.pz, -pgb.px,
-pgb.py, pgb.pz-pgb.px, -pgb.py, pgb.pz}
})
pgb.bar = scene.addobj('polygon', {
vertices = {-pgb.px, -pgb.py, pgb.pz, -pgb.px, pgb.py, pgb.pz, pgb.px, pgb.py, pgb.pz, pgb.px, -pgb.py, pgb.pz},
color = 'gray'
})
function pgb:setp(percent)
pgb.value = percent
local x = pgb.px*percent-pgb.px
pgb.bar:setscale(percent,1,1)
pgb.bar:setpos(x, 0, pgb.pz)
scene.render()
end
function pgb:del()
pgb.border:delete()
pgb.bar:delete()
end
pgb:setp(pgb.value)
return pgb
end
-- 使用示例
-- local pgb = ProgressBar(0.1)
-- debug.pause()
-- pgb:setp(0.2)
-- debug.pause()
-- pgb:setp(1)
-- debug.pause()
-- pgb:del()
scene.render()