效果图

一 . 整体功能
-
该代码使用pygame库实现了一个下雪动画效果。创建了一个黑色背景的窗口,在窗口内随机生成 100 个雪花,雪花以不同的速度从顶部落下,当雪花落到窗口底部时会重新从顶部开始落下,循环往复,形成下雪的动态效果,直到用户关闭窗口。
二. HTML 结构
-
导入了turtle库并别名为t,用于绘图操作。
-
导Snowflake类用于表示雪花对象,其__init__方法在初始化时为每个雪花随机设置初始位置(x和y坐标在窗口范围内)、大小(2 到 5 像素之间)和速度(1 到 3 之间的随机浮点数)。
-
fall方法用于更新雪花的位置,使雪花在每一帧中向下移动(y坐标增加self.speed),当雪花移出窗口底部时,将其重新设置到窗口顶部的随机位置。
-
draw方法使用pygame.draw.circle函数在屏幕上绘制雪花,雪花为白色圆形,圆心坐标为雪花的当前位置(self.x,self.y),半径为雪花的大小self.size。
三. 代码
import pygameimport random# 初始化 Pygamepygame.init()# 设置窗口width, height = 800, 600screen = pygame.display.set_mode((width, height))pygame.display.set_caption("下雪动画")# 定义雪花类class Snowflake:def __init__(self):self.x = random.randint(0, width)self.y = random.randint(0, height)self.size = random.randint(2, 5)self.speed = random.uniform(1, 3)def fall(self):self.y += self.speedif self.y > height:self.y = 0self.x = random.randint(0, width)def draw(self):pygame.draw.circle(screen, (255, 255, 255), (self.x, self.y), self.size)# 创建雪花列表snowflakes = [Snowflake() for _ in range(100)]# 主循环running = Truewhile running:for event in pygame.event.get():if event.type == pygame.QUIT:running = Falsescreen.fill((0, 0, 0)) # 填充背景for snowflake in snowflakes:snowflake.fall()snowflake.draw()pygame.display.flip()pygame.time.delay(30)pygame.quit()
点个赞吧!关注码途钥匙。
点个赞吧!

