-
Notifications
You must be signed in to change notification settings - Fork 3
/
Hula
54 lines (43 loc) · 1.17 KB
/
Hula
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
# A jim version of the Hula animation.
# Derived from the animation of the same name within the
# * 8 x 8 x 8 Cube Application Template, Version 7.0 © 2014 by Doug Domke
# * Downloads of this template and upcoming versions, along with detailed
# * instructions, are available at: http://d2-webdesign.com/cube
proc Hula {{reps 50}} {
set colour 0
set angle 10
loop rep 0 $reps {
# Start a transaction to build the cube in the buffer.
cube.begin
# For each layer.
loop z 0 8 {
cube.colour $colour
incr colour 3
if {$colour > 188} { set colour 0 }
loop x 0 $($z + 1) {
loop y 0 $($z + 1) {
cube.led $x $y $z
cube.led $x $y $(7 - $z)
}
}
loop x 1 $z {
loop y 1 $z {
cube.led $x $y $z 0 0 0
cube.led $x $y $(7 - $z) 0 0 0
}
}
}
# Finish the cube build but don't copy it over onto the
# real cube. cube.rotate will do that in the next loop.
cube.commit -nocopy
# Now that the cube is built, rotate it onto the real cube
loop i 0 9 {
cube.rotate -buffer $angle
incr angle 10
if {$angle > 360} { incr angle -360 }
delay 10
}
}
cube.clear
}
if {!$interactive} { Hula 50 }