以下是一个简单的Python动态流星代码示例:
import random import time import os def create_meteor(): width, height = os.get_terminal_size() meteor = { 'x': random.randint(0, width - 1), 'y': 0, 'length': random.randint(3, 10), 'speed': random.uniform(0.1, 0.5) } return meteor def move_meteor(meteor): meteor['y'] += 1 def draw_meteor(meteor): print('\033[91m', end='') # 设置颜色为红色 for i in range(meteor['length']): print('\033[{};{}H{}'.format(meteor['y'] - i, meteor['x'] + i, '*')) print('\033[0m', end='') # 恢复默认颜色 def clear_meteor(meteor): for i in range(meteor['length']): print('\033[{};{}H{}'.format(meteor['y'] - i, meteor['x'] + i, ' ')) def main(): meteors = [] while True: if random.random() < 0.1: meteors.append(create_meteor()) for meteor in meteors: clear_meteor(meteor) move_meteor(meteor) if meteor['y'] > os.get_terminal_size().lines: meteors.remove(meteor) else: draw_meteor(meteor) time.sleep(0.05) if __name__ == '__main__': main()
此代码使用了ANSI转义序列来控制终端的输出,以实现动态流星效果。代码中的\033[91m
设置输出颜色为红色,\033[0m
恢复默认颜色。代码中的os.get_terminal_size().lines
用于获取终端的行数,以便判断流星是否超出屏幕。