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 reduce()函数的用法小结
Nov 15 Python
django2 快速安装指南分享
Jan 05 Python
Python打印输出数组中全部元素
Mar 13 Python
python基础教程项目二之画幅好画
Apr 02 Python
Python下使用Scrapy爬取网页内容的实例
May 21 Python
Numpy数据类型转换astype,dtype的方法
Jun 09 Python
python 数字类型和字符串类型的相互转换实例
Jul 17 Python
对python3.4 字符串转16进制的实例详解
Jun 12 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
Apr 17 Python
opencv 实现特定颜色线条提取与定位操作
Jun 02 Python
Python抖音快手代码舞(字符舞)的实现方法
Feb 07 Python
解决pytorch 的state_dict()拷贝问题
Mar 03 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
PHP的FTP学习(一)
2006/10/09 PHP
PHP XML备份Mysql数据库
2009/05/27 PHP
php 一元分词算法
2009/11/30 PHP
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
解析php多线程下载远程多个文件
2013/06/25 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
php实现微信扫码支付
2017/03/26 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
2011/12/20 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
JQuery实现的图文自动轮播效果插件
2015/06/19 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
Angular异步变同步处理方法
2018/08/13 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
javascript实现图片轮播代码
2019/07/09 Javascript
python基础教程之数字处理(math)模块详解
2014/03/25 Python
python实现12306火车票查询器
2017/04/20 Python
Python爬虫实现(伪)球迷速成
2018/06/10 Python
python 字典中文key处理,读取,比较方法
2018/07/06 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
欧洲最大的球衣网上商店:Kitbag
2017/11/11 全球购物
如何设定的weblogic的热启动模式(开发模式)与产品发布模式
2012/09/08 面试题
怎样创建、运行java程序
2014/08/01 面试题
办公室前台的岗位职责
2013/12/20 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
公司离职证明标准格式
2014/11/18 职场文书
售后服务质量承诺书
2015/04/29 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书