python实现雪花飘落效果实例讲解


Posted in Python onJune 18, 2019

在学习pygame模块过程中,我们可以通过使用 pygame模块实现很多功能性的东西,但是很多人应该没有利用pygame实现过雪花飘落的效果吧,有时候可能是不知道从何入手或者是没有时间写,接下来我就教大家如何利用pygame模块实现雪花飘落的效果吧,总共都用不到40行代码就可以实现哦,希望对你们有所帮助

python实现雪花飘落效果实例讲解

第一步:我们先打开我们的pycharm软件,然后新建一个Python文件

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() # 刷新画面

python实现雪花飘落效果实例讲解

第三步:写好我们的代码之后,我们直接同时按住键盘上的Ctrl+shift+F10或者鼠标右键,找到“run”,进行程序的运行编译

python实现雪花飘落效果实例讲解

第四步:运行之后就可以看到我们的雪花飘落的效果了。

python实现雪花飘落效果实例讲解

第五步:在这代码当中,我已经对每一句代码都进行了注释,希望能对你们有所帮助,这串代码总共都不超过50行

python实现雪花飘落效果实例讲解

第六步:在运行代码之后,我们要确认我们的雪花图片所在的路径位置是否与我们代码中指定的雪花图片路径位置一致,如果不一致记得给出图片所在的准确位置

python实现雪花飘落效果实例讲解

第七步:在这个代码中,主要是通过使用pygame模块实现的一个效果,希望能对你们有所帮助,有误之处多多谅解!

python实现雪花飘落效果实例讲解

Python 相关文章推荐
Python实现批量下载图片的方法
Jul 08 Python
Python探索之ModelForm代码详解
Oct 26 Python
详解windows python3.7安装numpy问题的解决方法
Aug 13 Python
java判断三位数的实例讲解
Jun 10 Python
python对文件目录的操作方法实例总结
Jun 24 Python
详解pandas数据合并与重塑(pd.concat篇)
Jul 09 Python
python实现的汉诺塔算法示例
Oct 23 Python
tensorflow多维张量计算实例
Feb 11 Python
Pandas实现一列数据分隔为两列
May 18 Python
python 实现朴素贝叶斯算法的示例
Sep 30 Python
tensorflow与numpy的版本兼容性问题的解决
Jan 08 Python
pandas中DataFrame数据合并连接(merge、join、concat)
May 30 Python
python地震数据可视化详解
Jun 18 #Python
Python实现FM算法解析
Jun 18 #Python
python pygame实现五子棋小游戏
Oct 26 #Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
Jun 18 #Python
python制作简单五子棋游戏
Jun 18 #Python
Python利用pandas处理Excel数据的应用详解
Jun 18 #Python
PyQt5固定窗口大小的方法
Jun 18 #Python
You might like
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
php相当简单的分页类
2008/10/02 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
php使用Jpgraph创建3D饼形图效果示例
2017/02/15 PHP
JavaScript使用cookie
2007/02/02 Javascript
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
微信小程序 聊天室简单实现
2017/04/19 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
jQuery使用bind动态绑定事件无效的处理方法
2018/12/11 jQuery
JS前端广告拦截实现原理解析
2020/02/17 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
python 使用装饰器并记录log的示例代码
2019/07/12 Python
深入了解Django中间件及其方法
2019/07/26 Python
css 省略号 css3让多余的字符串消失并附加省略号的实现代码
2013/02/07 HTML / CSS
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
水污染治理专业毕业生推荐信
2013/11/14 职场文书
年会主持词结束语
2014/03/27 职场文书
食品采购员岗位职责
2014/04/14 职场文书
保护环境倡议书范文
2014/05/13 职场文书
pytorch 使用半精度模型部署的操作
2021/05/24 Python
MySQL慢查询优化解决问题
2022/03/17 MySQL
python运算符之与用户交互
2022/04/13 Python