コード例 #1
0
ファイル: scrolling_text.py プロジェクト: jsundahl/flipdot
def scrolling_text(text, start_from_right=True, scroll_length=1):
    """
    take in a string, output a generator that is a series of
    frames (5x7 matrices)
    """
    if start_from_right:
        matrix = [[0 for _ in range(6)] for __ in range(5)]
    else:
        matrix = [[] for _ in range(5)]

    for char in list(text):
        trimmed_char = _trim_frame(Characters.string_to_matrices(char)[0])

        for i in range(5):
            matrix[i] += trimmed_char[i] + [0]

        while len(matrix[0]) >= 7:
            yield [col[:7] for col in matrix]
            matrix = [col[scroll_length:] for col in matrix]

    while (len(matrix[0]) > 0):
        padding = [0 for _ in range(7 - len(matrix[0]))]
        yield [matrix[i] + padding for i in range(5)]

        matrix = [col[scroll_length:] for col in matrix]