python实现雪花飘落效果实例讲解
作者:laozhang 发布时间:2022-08-29 07:31:55
标签:python,雪花飘落
在学习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模块实现的一个效果,希望能对你们有所帮助,有误之处多多谅解!
0
投稿
猜你喜欢
- fso对象CreateTextFile方法调用时可能会报“无效的过程调用或参数”错误,在使用ASP生成静态页面时,如果传入的字符串参数编码为
- 前言ThinkPHP出于安全的考虑增加了表单令牌Token,由于通过Ajax异步更新数据仅仅部分页面刷新数据,就导致了令牌Token不能得到
- 举个例子来说,要查找出2007-10-12至2007-10-31之间在网站上注册的会员,选择好日期后,点击“查询”按钮,发现2007-10-
- 方式一:直接通过数据库厂商提供的相关驱动步骤导入相关驱动(Build Path)创建Driver类的实例化对象获取要连接数据库的URL创建P
- 今天遇到一个问题,就是用pycharm运行python程序,老是会出现Python.exe已停止的对话框。后来我到处在网上搜原因,网上给出的
- 背景(background)在项目中经常会使用。这篇文章主要讲解的是实际项目中的5个实例。通过具体的分析来达到学习的目的。1,Li列表通过u
- 早就听说requests的库的强大,只是还没有接触,今天接触了一下,发现以前使用urllib,urllib2等方法真是太搓了……这里写些简单
- 这两天为用bottle+mongodb写的一个项目加上登录功能,无奈怎么都获取不到保存的cookie,文档给出让我们这样操作cookie的代
- JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它
- 缩进Python最具特色的是用缩进来标明成块的代码。我下面以if选择结构来举例。if后面跟随条件,如果条件成立,则执行归属于if的一个代码块
- 前言:在前面一些文章中,经常能看到介绍某某参数的作用,可能有些小伙伴仍搞不清楚 MySQL 参数是啥。本篇文章我们来聊聊 MySQL 参数,
- 因笔者个人需要需要在本机安装Mysql,先将安装过程记录如下,希望对他人有所参考。 一、下载软件1. 进入mysql官网,登陆自己
- 本文实例为大家分享了JavaScript实现alert弹框的具体代码,供大家参考,具体内容如下因本人水平有限,不足之处还望大家指正。先上图:
- 读写 JSON 数据问题你想读写 JSON(JavaScript Object Notation) 编码格式的数据。解决方案json模块提供
- 1.简介Psycopg是一种用于执行SQL语句的PythonAPI,可以为PostgreSQL、openGauss数据库提供统一访问接口,应
- Python中的内建函数和可迭代对象,迭代器求值标识id() #标识id 返回对象的唯一标识,CPython返回内存地址hash() #哈希
- 首先这里声明一下,关于我测试浏览器的版本是chrome15.0.874.121 Firefox 8.01 IE9 IETester下面的代码
- 这篇文章主要介绍了Python远程开发环境部署与调试过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 前言其实全文检索在MySQL里面很早就支持了,只不过一直以来只支持英文。缘由是他从来都使用空格来作为分词的分隔符,而对于中文来讲,显然用空格
- YOLO是You-Only-Look-Once的缩写,它无疑是根据COCO数据集训练的最好的对象检测器之一。YOLOv4是最新的迭代版本,它