python动态流星雨代码
时间: 2023-09-11 22:13:16 浏览: 229
这是一个使用Python实现动态流星雨效果的示例代码:
```python
import random
import time
# 设置屏幕的宽度和高度
WIDTH = 80
HEIGHT = 20
# 定义流星的类
class Meteor:
def __init__(self):
self.x = random.randint(0, WIDTH) # 随机生成初始x坐标
self.y = 0 # 初始y坐标为0
self.speed = random.uniform(0.1, 1) # 随机生成下落速度
# 更新流星的位置
def update(self):
self.y += self.speed
if self.y >= HEIGHT: # 如果流星超出屏幕范围,则重新生成
self.x = random.randint(0, WIDTH)
self.y = 0
self.speed = random.uniform(0.1, 1)
# 绘制流星
def draw(self):
print("\033[31m*\033[0m", end="", flush=True) # 使用红色打印字符,"\033[31m"表示红色,"\033[0m"表示恢复默认颜色
# 清空屏幕
def clear_screen():
print("\033[2J", end="", flush=True)
# 设置光标位置
def set_cursor(x, y):
print("\033[{};{}H".format(y, x), end="", flush=True)
# 隐藏光标
def hide_cursor():
print("\033[?25l", end="", flush=True)
# 显示光标
def show_cursor():
print("\033[?25h", end="", flush=True)
# 主程序
def main():
meteors = [] # 存储流星的列表
# 初始化流星
for _ in range(10):
meteors.append(Meteor())
hide_cursor()
clear_screen()
while True:
clear_screen()
for meteor in meteors:
meteor.update()
set_cursor(int(meteor.x), int(meteor.y))
meteor.draw()
time.sleep(0.1)
if __name__ == "__main__":
main()
```
你可以运行以上代码,在终端中会出现一个动态的流星雨效果。希望对你有帮助!