在学习pygame模块过程中,我们可以通过使用 pygame模块实现很多功能性的东西,但是很多人应该没有利用pygame实现过雪花飘落的效果吧,有时候可能是不知道从何入手或者是没有时间写,接下来我就教大家如何利用pygame模块实现雪花飘落的效果吧,总共都用不到40行代码就可以实现哦,希望对你们有所帮助

第一步:我们先打开我们的pycharm软件,然后新建一个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() # 刷新画面

第三步:写好我们的代码之后,我们直接同时按住键盘上的Ctrl+shift+F10或者鼠标右键,找到“run”,进行程序的运行编译

第四步:运行之后就可以看到我们的雪花飘落的效果了。

第五步:在这代码当中,我已经对每一句代码都进行了注释,希望能对你们有所帮助,这串代码总共都不超过50行

第六步:在运行代码之后,我们要确认我们的雪花图片所在的路径位置是否与我们代码中指定的雪花图片路径位置一致,如果不一致记得给出图片所在的准确位置

第七步:在这个代码中,主要是通过使用pygame模块实现的一个效果,希望能对你们有所帮助,有误之处多多谅解!

python实现雪花飘落效果_python实现雪花飘落效果实例讲解相关推荐

  1. python实现雪花飘落效果_python实现雪花飘落效果实例讲解及源码分享!

    点击蓝字"python教程"关注我们哟! 前言 Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及 ...

  2. python将list转为矩阵_python list转矩阵的实例讲解

    python list转矩阵的实例讲解 如下所示: #list转矩阵,矩阵列合并 x = [[1.2,2.2,1.4],[1.3,2.4,2.1],[1,1,0]] #表示有三个点,第一个点为(1,2 ...

  3. 用python如何制作表格步骤_Python中用xlwt制作表格实例讲解

    在Python中,我们也可以用xlwt来制作excel表格,是不是很神奇,接下来一起学习吧. 举例: ```python import xlwt wb = xlwt.Workbook(encoding ...

  4. python if else 嵌套格式_python中if嵌套命令实例讲解

    一.嵌套命令计算机执行的顺序 缩进相同的命令处于同一个等级,第一步,计算机就要按顺序一条一条地执行命令. 1.先给score赋值: 2.因为if和else是只能留一个的互斥关系,if和else下的代码 ...

  5. python查看函数参数快捷键_python查看函数源代码快捷键_pycharm中查看源码的快捷键...

    html使用心得 (1) 在 ... Spring中WebApplicationContext的研究 Spring中WebApplicationContext的研究 ApplicationContex ...

  6. python多线程执行同样代码_Python 多线程、多进程 (一)之 源码执行流程、GIL

    一.python程序的运行原理 许多时候,在执行一个python文件的时候,会发现在同一目录下会出现一个__pyc__文件夹(python3)或者.pyc后缀(python2)的文件 Python在执 ...

  7. Python实现读取当前粉丝数量及UP主信息(实时)源码分享

    最近博主在某站(俗称:社畜站)开通了账号,为了实时关注粉丝增长动态,特意写了一个脚本,不再登陆客户端网页,实时关注粉丝增长状态. 我爱工作,热爱工作,有了这个脚本,就可以安心工作啦.老板在也不用担心我 ...

  8. python链表的创建_python数据结构之链表的实例讲解

    在程序中,经常需要将组(通常是同为某个类型的)数据元素作为整体 管理和使,需要创建这种元素组,变量记录它们,传进传出函数等. 组数据中包含的元素个数可能发变化(可以增加或删除元素). 对于这种需求,最 ...

  9. python链表值讲解_python数据结构之链表的实例讲解

    在程序中,经常需要将⼀组(通常是同为某个类型的)数据元素作为整体 管理和使⽤,需要创建这种元素组,⽤变量记录它们,传进传出函数等. ⼀组数据中包含的元素个数可能发⽣变化(可以增加或删除元素). 对于这 ...

  10. Python基于OpenCV的智能交通灯系统(南北车流量比例)[源码&部署教程]

    1.研究背景: 在传统城市道路交通信号灯的应用过程中,存在专业技术人员较缺乏.项目投入资金少.信号灯故障抢修较困难等问题,为城市居民生活与出行带来极大不便.对此,文章进行深入研究,分析了城市道路智慧交 ...

最新文章

  1. 网民网上购物决策时间延长
  2. Linux就业技术指导(二):简历项目经验示例
  3. 伺服步进电机选型软件_关于伺服步进电机的28个问题
  4. Linux每次开机都要source /etc/profile的解决方法
  5. OPPM 一页纸项目管理 One-Page Project Management
  6. 吴恩达deeplearning资源汇总帖
  7. Swagger2 添加HTTP head参数
  8. Vaadin Flow –奇妙的鹿
  9. [JLOI2014]松鼠的新家
  10. FreeWheel是一家怎样的公司?| 人物志
  11. Maven(一):Maven安装及Eclipse配置
  12. 《设计模式解析(第2版•修订版)》—第1章 1.4节应对变化:使用功能分解
  13. 评估数据库存储引擎的黄金三角
  14. 翻译:Stairway to SQL Server Security Level 3: Principals and Securables
  15. Layer btnAlign 失效问题解决方法
  16. 办公室网络还能这么搭建?从入门到精通,看这里
  17. Kaggle所有量化金融竞赛汇总。
  18. 仿微信朋友圈,文字展开全文,全文收起功能
  19. C练题笔记之:Leetcode-804. 唯一摩尔斯密码词
  20. 冲击、碰撞试验对设备的要求

热门文章

  1. 记录Widows10系统崩溃后安装Widows7系统的心酸历程
  2. xlp 开发环境在Ubuntu11.4中的建立
  3. 多线程任务超时的处理机制
  4. 我的世界java无限水_我的世界基岩版:如何获得无限水?这里有5种方法,最后一种无中生有...
  5. 决策树——员工离职预测模型搭建
  6. VR全景,带您“飞临”探秘北京2022年冬奥会
  7. Strut2 界面标签和其他标签
  8. 计算请假时间(不算节假日)
  9. 领导者激励团队的最佳方法
  10. CISCO 关闭4786端口解决方法 cisco IOS and IOS XE software Smart Install protocol Misuse