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中的代码编码格式转换问题
Jun 10 Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
python模拟登录并且保持cookie的方法详解
Apr 04 Python
对numpy和pandas中数组的合并和拆分详解
Apr 11 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
Jun 14 Python
使用tensorflow实现线性回归
Sep 08 Python
Python爬虫抓取技术的一些经验
Jul 12 Python
python多线程同步实例教程
Aug 11 Python
解决Pycharm的项目目录突然消失的问题
Jan 20 Python
使用TensorFlow直接获取处理MNIST数据方式
Feb 10 Python
python collections模块的使用
Oct 16 Python
python time.strptime格式化实例详解
Feb 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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
2016/03/02 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
javascript 日期常用的方法
2009/11/11 Javascript
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
浅析JS刷新框架中的其他页面 && JS刷新窗口方法汇总
2013/07/08 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
webpack4.0 入门实践教程
2018/10/08 Javascript
Element-UI中关于table表格的那些骚操作(小结)
2019/08/15 Javascript
js利用递归与promise 按顺序请求数据的方法
2019/08/30 Javascript
VUE注册全局组件和局部组件过程解析
2019/10/10 Javascript
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
详解用Python处理HTML转义字符的5种方式
2017/12/27 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
中学实习教师自我鉴定
2013/12/12 职场文书
党员公开承诺书
2014/03/25 职场文书
婚前财产公证书
2014/04/10 职场文书
服务标语大全
2014/06/18 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
小学班主任事迹材料
2014/12/17 职场文书
高二数学教学反思
2016/02/18 职场文书
交通事故协议书范本
2016/03/19 职场文书