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
投稿
猜你喜欢
- 目前网上能获取的免费的python打包工具主要有三种:py2exe、PyInstaller和cx_Freeze。下面简单介绍windows7
- 前言:记一次golang使用json进行对象copy的内存溢出问题排查问题现象:新增的功能,灰度部署在k8s集群的服务,发现机器老是被打崩,
- OpenAI 是一个人工智能的工具包,包括神经网络、遗传算法和有限状态机等。使用python可以非常便捷的操作OpenAI的API。一下是O
- 本文实例讲述了Python基础之字符串常见操作。分享给大家供大家参考,具体如下:字符串基本操作切片# str[beg:end]# (下标从
- 帮网友小改了一下主题. 任务比较简单, 只是为一个三栏主题添加对 Widget 的支持而已,就先从这次简单的案例开始说吧.单侧边栏funct
- 本文实例讲述了Python多线程编程之多线程加锁操作。分享给大家供大家参考,具体如下:Python语言本身是支持多线程的,不像PHP语言。下
- tornado 默认有一个模板引擎但是功能简单(其实我能用到的都差不多)使用起来颇为麻烦, 而jinja2语法与django模板相似所以决定
- 一。存储过程的创建和使用1.创建程序包,并在程序中创建存储过程create or replace PACKAG
- 你一定听说过这句著名的数据科学名言:在数据科学项目中, 80% 的时间是在做数据处理。如果你没有听过,那么请记住:数据清洗是数据科学工作流程
- 概念所有Python的对象都是扩展的PyObject,python的垃圾回收机制是计算引用,这个对象中定义了py_ssize就是用来做这个事
- 本文实例讲述了python静态方法。分享给大家供大家参考。具体实现方法如下:staticmethod Found at: __builtin
- 原理经度 phi,纬度 theta 处的坐标为:x =R* cos(phi) * cos(theta)y = Rsin(phi) * cos
- 而今天我们要说的内容是:如果在网页中存在文件资源,如:图片,电影,文档等。怎样通过Python爬虫把这些资源下载下来。1、怎样在网上找资源:
- 前言在我们的日常开发中, 常用的中间件有很多, 今天来讲一下怎么集成限流中间件, 它可以很好地用限制并发访问数来保护系统服务, 避免系统服务
- LyScript 插件默认提供了一个get_disasm_code()方法可以直接获取到指定行数的反汇编代码,但如果需要自定义获取或者是需要
- 在大型商业应用中,数据的异地容灾备份十分重要,也必不可少。笔者根据自己的实践经验,设计了一套简洁地实现异地数据自动备份的方法,可供数据库管理
- modelform是model衍生出来的form .modelform的用法非常死.首先在models.py里创建模型表.所有的form组件
- 关键字:js验证表单大全,用JS控制表单提交 ,javascript提交表单:目录:1:js 字符串长度限制、判断字符长度 、js限制输入、
- 一、Flask简介Flask 是一个 Python 实现的 Web 开发微框架。官网:http://flask.pocoo.org/二、De
- pytorch 中的 state_dict 是一个简单的python的字典对象,将每一层与它的对应参数建立映射关系.(如model的每一层的