python实现雪花飘落效果实例讲解
作者:laozhang 时间:2022-08-29 07:31:55
在学习pygame模块过程中,我们可以通过使用 pygame模块实现很多功能性的东西,但是很多人应该没有利用pygame实现过雪花飘落的效果吧,有时候可能是不知道从何入手或者是没有时间写,接下来我就教大家如何利用pygame模块实现雪花飘落的效果吧,总共都用不到40行代码就可以实现哦,希望对你们有所帮助
第一步:我们先打开我们的pycharm软件,然后新建一个Python文件
第二步:建立好文件之后,我们在编辑页面输入以下代码:
import pygame
import sys #导入模块
import random
#设置窗体图形界面
screen = pygame.display.set_mode((700,500)) #设置窗体的屏幕宽高,screen变量接收屏幕
pygame.display.set_caption("吴秀柔 16级计科2班") #设置窗体的标题
#雪花
snowImage='image/snow.png' #定位图片
snowStart=pygame.image.load(snowImage) #加载图片
#定义一个图像和雪花列表
imagelist=[]
snowlist=[]
#绘制初始化雪花
for i in range(20):# 随机给出雪花在窗体上,一次可以显示的个数
x = random.randint(0,600) #参数1为上限,参数2为下限
y = random.randint(0,450)
snowlist.append(random.randint(1,2)) #雪花下落的速度
imagelist.append([x,y]) # 保存随机获得的位置
#绘制雪花在窗体上
while True:
screen.fill((0,0,0)) #设置窗体的背景为黑色
# 消息事件循环,判断退出
for event in pygame.event.get(): #获得一个事件的列表
if event.type == pygame.QUIT: #如果事件类型,退出
sys.exit() #安全退出
num=0
for y in imagelist: # 雪花列表循环,从y轴的上限往下限方向飘落
y[1]=y[1]+snowlist[num] #改变Y轴坐标,移动雪花位置
num+=1
screen.blit(snowStart,(y[0],y[1])) # 打印雪花
if y[1]>=500: #当雪花达到下限,落出屏幕之后,重设位置
y[1]=-snowStart.get_height() #重设Y轴的坐标到0以上,从而使得雪花下一次循环有效
pygame.display.update() # 刷新画面
第三步:写好我们的代码之后,我们直接同时按住键盘上的Ctrl+shift+F10或者鼠标右键,找到“run”,进行程序的运行编译
第四步:运行之后就可以看到我们的雪花飘落的效果了。
第五步:在这代码当中,我已经对每一句代码都进行了注释,希望能对你们有所帮助,这串代码总共都不超过50行
第六步:在运行代码之后,我们要确认我们的雪花图片所在的路径位置是否与我们代码中指定的雪花图片路径位置一致,如果不一致记得给出图片所在的准确位置
第七步:在这个代码中,主要是通过使用pygame模块实现的一个效果,希望能对你们有所帮助,有误之处多多谅解!
标签:python,雪花飘落
0
投稿
猜你喜欢
情人节快乐! python绘制漂亮玫瑰
2021-02-07 18:22:48
MySQL数据库闭包Closure Table表实现示例
2024-01-21 23:29:24
keras 特征图可视化实例(中间层)
2021-12-05 22:54:46
Python semaphore evevt生产者消费者模型原理解析
2021-11-14 12:52:39
Node.js中Bootstrap-table的两种分页的实现方法
2024-05-11 10:58:21
Python批量修改文件名的方式详解
2023-05-15 20:56:08
python实现简单的井字棋小游戏
2022-06-30 10:48:05
从零学Python之入门(五)缩进和选择
2022-03-04 13:11:24
python在指定位置插入字符的实现
2023-07-04 04:56:56
判断python字典中key是否存在的两种方法
2023-08-19 00:18:05
Python自动化导出zabbix数据并发邮件脚本
2022-08-18 12:31:46
python正则表达式之re.match()与re.search()的用法及区别
2022-05-14 13:21:46
制作设置404页面
2009-07-03 13:01:00
PyQt5使用mimeData实现拖拽事件教程示例解析下
2021-02-15 11:09:03
聊聊QT添加MySQL驱动依赖的问题
2024-01-14 10:25:58
pytorch如何获得模型的计算量和参数量
2023-07-24 06:44:43
python 爬取英雄联盟皮肤并下载的示例
2023-07-22 09:57:45
Python变量定义的简单使用介绍
2021-08-23 07:35:26
用ASP判断客户端浏览器语言自动跳转
2010-07-09 13:34:00
解决Pytorch自定义层出现多Variable共享内存错误问题
2023-12-14 14:43:46