当前位置: 首页 > news >正文

使用Python的pygame库实现下雪的效果

使用Python的pygame库实现下雪的效果

关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520

先给出效果图:

源码如下:

import pygame
import random# 初始化pygame
pygame.init()# 设置屏幕尺寸
width, height = 800, 600
screen = pygame.display.set_mode((width, height))# 设置雪花属性
snowflakes = []
for i in range(50):x = random.randrange(0, width)y = random.randrange(0, height)speed = random.uniform(1, 3)size = random.randint(3, 6)  # 雪花大小参数snowflakes.append([x, y, speed, size])# 循环直到用户关闭窗口
running = True
while running:for event in pygame.event.get():if event.type == pygame.QUIT:running = False# 填充屏幕颜色screen.fill((200, 200, 200))  # (0, 0, 0)黑色;(200, 200, 200)阴天# 绘制雪花for flake in snowflakes:pygame.draw.circle(screen, (255, 255, 255), (int(flake[0]), int(flake[1])), flake[3])  # 使用大小参数绘制雪花flake[1] += flake[2]  # 移动雪花if flake[1] > height:flake[1] = random.randrange(-50, -10)flake[0] = random.randrange(0, width)# 更新屏幕pygame.display.flip()# 控制帧率pygame.time.Clock().tick(30)# 退出pygame
pygame.quit()

下面给出改进版

效果图:

使用一张背景图片(我这里文件名:snow_background.jpg),和代码文件放在同一目录下

 源码如下:

import pygame
import random# 初始化pygame
pygame.init()# 设置屏幕尺寸
width, height = 800, 600
screen = pygame.display.set_mode((width, height))# 加载背景图片
background = pygame.image.load('snow_background.jpg')
background = pygame.transform.scale(background, (width, height))# 设置雪花属性
snowflakes = []
for i in range(50):x = random.randrange(0, width)y = random.randrange(0, height)speed = random.uniform(1, 3)size = random.randint(3, 6)  # 雪花大小参数snowflakes.append([x, y, speed, size])# 循环直到用户关闭窗口
running = True
while running:for event in pygame.event.get():if event.type == pygame.QUIT:running = False# 填充屏幕颜色#screen.fill((200, 200, 200))  # (0, 0, 0)黑色;(200, 200, 200)阴天# 绘制背景图片screen.blit(background, (0, 0))# 移动雪花并重新绘制for flake in snowflakes:pygame.draw.circle(screen, (255, 255, 255), (int(flake[0]), int(flake[1])), flake[3])  # 使用大小参数绘制雪花flake[1] += flake[2]  # 移动雪花if flake[1] > height:flake[1] = random.randrange(-50, -10)flake[0] = random.randrange(0, width)# 更新屏幕pygame.display.flip()# 控制帧率pygame.time.Clock().tick(30)# 退出pygame
pygame.quit()

附:RGB 颜色表   https://www.codeeeee.com/color/rgb.html
 

http://www.lryc.cn/news/284063.html

相关文章:

  • qt学习:进度条,水平滑动条,垂直滑动条+rgb调试实战
  • C语言中的浮点数存储
  • Pypputeer自动化
  • selenium爬虫爬取当当网书籍信息 | 最新!
  • PTA 7-1 最大子列和问题
  • JAVA实现向Word模板中插入Base64图片和数据信息
  • 深入浅出关于go web的请求路由
  • HarmonyOS—开发环境诊断的功能
  • Golang个人web框架开发-学习流程
  • java面试题(23):Spring Bean如何保证并发安全
  • HarmonyOS【应用服务开发】在模块中添加Ability
  • 根据屏幕尺寸设置html根字号fontSize大小并刷新
  • Flutter 中的 InteractiveViewer:轻松实现交互性
  • UE4 添加按键输入事件 并在蓝图中使用按键输入节点
  • Go 语言命名规范:清晰、简洁、一致
  • 代码随想录训练营第三十期|第十天|栈与队列part01|理论基础● 232.用栈实现队列● 225. 用队列实现栈
  • Backtrader 文档学习-Indicators混合时间框架
  • 网络攻击与检测防御:维护数字安全的关键挑战
  • 使用 Vector 在 Kubernetes 中收集日志
  • ardupilot开发 --- 固件定制(OEM) 篇
  • 爬虫代理IP在电商行业的应用
  • Vue配置语法检查及关闭语法检查的说明
  • 【Linux】yum
  • 安装sftpgo
  • JS-元素尺寸与位置
  • 2024-01-15(SpringMVCMybatis)
  • Node+Express编写接口---前端
  • 防火墙技术
  • 图灵日记之java奇妙历险记--String类
  • 代码随想录算法训练营第六天| 242 有效的字母异位词 349 两个数组的交集 202 快乐数 1 两数之和