雪花的制作类

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值