import tkinter as tk
import random
class Snow:
def __init__(self, root):
self.root = root
self.canvas = tk.Canvas(root, width=800, height=600, bg='black')
self.canvas.pack()
self.snowflakes = []
self.size = random.randint(2, 5)
self.create_snowflakes()
self.move_snowflakes()
self.root.mainloop()
def create_snowflakes(self):
for i in range(200):
x = random.randint(0, 800)
y = random.randint(0, 600)
snowflake = self.canvas.create_oval(x, y, x + self.size, y + self.size, fill='white')
self.snowflakes.append(snowflake)
def move_snowflakes(self):
for snowflake in self.snowflakes:
# 获取雪花的当前坐标
x1, y1, x2, y2 = self.canvas.coords(snowflake)
# 让雪花向下移动 5 个像素
self.canvas.move(snowflake, 0, 5)
# 如果雪花超出画布底部,将其重新放置在顶部
if y2 >= 600:
self.canvas.coords(snowflake, x1, 0, x2, self.size)
# 每隔 50 毫秒调用一次 move_snowflakes 方法
self.root.after(50, self.move_snowflakes)
root = tk.Tk()
snow = Snow(root)