批量动画#

def shuffle(string):
    '''随机打乱字符串并返回新的字符串'''
    import random
    char_list = list(string)
    random.shuffle(char_list)
    return ''.join(char_list)

class TestScene(Scene):
    def construct(self):
        # 生成20个字符
        chars = VGroup(*(
            Text(char, color = utils.color.random_color())
            for _ in range(4) for char in shuffle('MANIM')
        ))
        # 网格排列(4行5列)
        chars.arrange_in_grid(rows=4)

        # 用AnimationGroup管理多个FadeIn动画
        self.play(AnimationGroup(
            *(FadeIn(m, shift=DOWN) for m in chars),
            lag_ratio = .3,
        ))
        self.wait()

使用AnimationGroup管理多个动画,lag_ratio为相邻两个动画之间的延迟程度,数值可以大于1。

关键词:batch multi animation AnimationGroup