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的Django框架加载模版的方式
Jul 20 Python
Python编程中的for循环语句学习教程
Oct 14 Python
Python3实现并发检验代理池地址的方法
Sep 18 Python
详解python进行mp3格式判断
Dec 23 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
Dec 12 Python
Python实现去除列表中重复元素的方法小结【4种方法】
Apr 27 Python
pandas中去除指定字符的实例
May 18 Python
Python操作Excel插入删除行的方法
Dec 10 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
tensorflow实现二维平面模拟三维数据教程
Feb 11 Python
django项目中新增app的2种实现方法
Apr 01 Python
python中JWT用户认证的实现
May 18 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
Function eregi is deprecated (解决方法)
2013/06/21 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
2014/04/25 PHP
php支持断点续传、分块下载的类
2016/05/02 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
动态加载脚本提升javascript性能
2014/02/24 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
JS中常用的正则表达式
2016/09/29 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
浅谈JavaScript异步编程
2017/01/20 Javascript
node.js操作MongoDB的实例详解
2017/10/11 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
使用Node.js实现一个多人游戏服务器引擎
2019/03/13 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
Element MessageBox弹框的具体使用
2020/07/27 Javascript
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
Python文件及目录操作实例详解
2015/06/04 Python
Python Nose框架编写测试用例方法
2017/10/26 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
在Python中画图(基于Jupyter notebook的魔法函数)
2019/10/28 Python
keras 使用Lambda 快速新建层 添加多个参数操作
2020/06/10 Python
python自动从arxiv下载paper的示例代码
2020/12/05 Python
python中xlrd模块的使用详解
2021/02/01 Python
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
英国家居装饰品、户外家具和玻璃器皿购物网站:Rinkit.com
2019/11/04 全球购物
JavaScript获取当前url根目录(路径)
2014/02/19 面试题
环保建议书100字
2014/05/14 职场文书
空气环保标语
2014/06/12 职场文书
大学生考试作弊检讨书1000字
2014/10/14 职场文书
教师旷工检讨书
2015/08/15 职场文书
2016新教师岗前培训心得体会
2016/01/08 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP