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制作简单的钢琴程序的教程
Apr 01 Python
Python中几种操作字符串的方法的介绍
Apr 09 Python
Python使用cookielib模块操作cookie的实例教程
Jul 12 Python
基于python(urlparse)模板的使用方法总结
Oct 13 Python
python实现图片识别汽车功能
Nov 30 Python
Python数据集切分实例
Dec 08 Python
在Python文件中指定Python解释器的方法
Feb 18 Python
分享8个非常流行的 Python 可视化工具包
Jun 05 Python
Python日志无延迟实时写入的示例
Jul 11 Python
python使用协程实现并发操作的方法详解
Dec 27 Python
利用Python实现自动扫雷小脚本
Dec 17 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
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学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
offsetParent 算法分析
2010/04/05 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
2011/05/24 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
简单实现jQuery级联菜单
2017/01/09 Javascript
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
简单介绍react redux的中间件的使用
2018/04/06 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
Vue SPA 初次进入加载动画实现代码
2019/11/14 Javascript
[48:46]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第二场 11.19
2020/11/19 DOTA
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
python获取指定时间差的时间实例详解
2017/04/11 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
python中subprocess批量执行linux命令
2018/04/27 Python
Python标准库使用OrderedDict类的实例讲解
2019/02/14 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
pandas按照列的值排序(某一列或者多列)
2020/12/13 Python
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
Etam德国:内衣精品店
2019/08/25 全球购物
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
简单介绍Object类的功能、常用方法
2013/10/02 面试题
单位刻章介绍信范文
2014/01/11 职场文书
爷爷追悼会答谢词
2014/01/24 职场文书
技能比赛获奖感言
2014/02/14 职场文书
宣传部部长竞选演讲稿
2014/04/26 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
高三英语教学计划
2015/01/23 职场文书
2015学校图书管理员工作总结
2015/05/11 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android