Grow Boxes
You guessed right, boxes grow too.
Loop block() in 3 dimensions, we can set up the timer to make a box grow:
grow_box, red
# grow_box
def grow_box(x,y,z, d):
for i in range(-d, d+1):
for j in range(-d, d+1):
for k in range(-d, d+1):
block((x+i), (y+j), (z+k), 13) # red
if d < 5:
game.set_timer(1, grow_box, x, y, z, d+1)
grow_box(0, 40, -30, 0)
This is a red color box, it's size keeps getting bigger.
A line of boxes
Let's grow a line of boxes, give the x value in block() a shifting number n:
many_boxes, lime
# many_boxes
def many_boxes(x,y,z, d, n):
for i in range(-d, d+1):
for j in range(-d, d+1):
for k in range(-d, d+1):
block((x+i+n),(y+j),(z+k), 8) # lime
if d < 5:
game.set_timer(1, many_boxes, x, y, z, d+1, n+20)
grow_box(0, 10,-30, 0, 0)
many_boxColor
Add another argument, the material number m, also update it's value in the timer function, we'll get many boxes of different color, they appear one by one, small to big.
def many_boxColor(x,y,z, d, n, m):
for i in range(-d, d+1):
for j in range(-d, d+1):
for k in range(-d, d+1):
block((x+i+n),(y+j),(z+k), m)
if d < 5:
game.set_timer(1, many_boxColor, x, y, z, d+1, n+20, m+1)
many_boxColor(0, 30 , -30, 0, 0, 49)
A picture of the final boxes, you run the program and see them in motion.
