以下是一个简单的Python动态流星代码示例:
```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`用于获取终端的行数,以便判断流星是否超出屏幕。