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中__init__和__new__的区别详解
Jul 09 Python
Python使用函数默认值实现函数静态变量的方法
Aug 18 Python
python自动格式化json文件的方法
Mar 11 Python
深入理解 Python 中的多线程 新手必看
Nov 20 Python
Python实现简单网页图片抓取完整代码实例
Dec 15 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 Python
Python实现带参数与不带参数的多重继承示例
Jan 30 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
Dec 12 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
Jan 21 Python
jupyter notebook oepncv 显示一张图像的实现
Apr 24 Python
python小白学习包管理器pip安装
Jun 09 Python
关于python中导入文件到list的问题
Oct 31 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
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
一个简单的PHP&MYSQL留言板源码
2020/07/19 PHP
Thinkphp模板中截取字符串函数简介
2014/06/17 PHP
PHP预定义变量9大超全局数组用法详解
2016/04/23 PHP
基于PHP实现的多元线性回归模拟曲线算法
2018/01/30 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
javascript 类型判断代码分析
2010/03/28 Javascript
js获取电脑分辨率的思路及操作
2013/11/22 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
Node.js调试技术总结分享
2017/03/12 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
Python全局变量操作详解
2015/04/14 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
python使用tensorflow深度学习识别验证码
2018/04/03 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
selenium2.0中常用的python函数汇总
2019/08/05 Python
python 串口读取+存储+输出处理实例
2019/12/26 Python
Python求平面内点到直线距离的实现
2020/01/19 Python
Python列表切片常用操作实例解析
2020/03/10 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
幼儿园中班新学期寄语
2014/01/18 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
意外伤害赔偿协议书
2014/09/16 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
2021/06/09 Python
Python之matplotlib绘制折线图
2022/04/13 Python
Python开发五子棋小游戏
2022/05/02 Python
2022年显卡天梯图(6月更新)
2022/06/17 数码科技