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基于百度AI的文字识别的示例
Apr 21 Python
用Python读取几十万行文本数据
Dec 24 Python
python面向对象实现名片管理系统文件版
Apr 26 Python
python3 批量获取对应端口服务的实例
Jul 25 Python
python numpy中cumsum的用法详解
Oct 17 Python
从pandas一个单元格的字符串中提取字符串方式
Dec 17 Python
python爬虫爬取监控教务系统的思路详解
Jan 08 Python
python numpy--数组的组合和分割实例
Feb 24 Python
基于python实现计算且附带进度条代码实例
Mar 31 Python
Python绘图实现台风路径可视化代码实例
Oct 23 Python
python tkinter模块的简单使用
Apr 07 Python
Anaconda安装pytorch和paddle的方法步骤
Apr 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
星际争霸任务指南——人族
2020/03/04 星际争霸
php curl基本操作详解
2013/07/23 PHP
php判断用户是否关注微信公众号
2016/07/22 PHP
PHP计算近1年的所有月份
2017/03/13 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
div层的移动及性能优化
2010/11/16 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
js AppendChild与insertBefore用法详细对比
2013/12/16 Javascript
jquery实现勾选复选框触发事件给input赋值
2015/02/01 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
使用RequireJS库加载JavaScript模块的实例教程
2016/06/06 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
node+express+ejs使用模版引擎做的一个示例demo
2017/09/18 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
JS二分查找算法详解
2017/11/01 Javascript
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
Vue2 添加数据可视化支持的方法步骤
2019/01/02 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
python 实现插入排序算法
2012/06/05 Python
Python实现模拟登录及表单提交的方法
2015/07/25 Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
2018/06/04 Python
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
Linux文件操作命令都有哪些
2016/07/23 面试题
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
纪念九一八爱国演讲稿600字
2014/09/14 职场文书
办公室主任岗位职责范本
2015/03/31 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书
Kubernetes关键组件与结构组成介绍
2022/03/31 Servers
Python 绘制多因子柱状图
2022/05/11 Python