python实现雪花飘落效果实例讲解

yipeiwu_com5年前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模块实现的一个效果,希望能对你们有所帮助,有误之处多多谅解!

相关文章

python实现图片插入文字

python实现图片插入文字

本文实例为大家分享了python图片插入文字的具体代码,供大家参考,具体内容如下 问题 如何在图片中插入大量文字并且自动换行 效果 原始图 效果图 注明 若需要写入中文请使用中文字体...

python文字转语音实现过程解析

这篇文章主要介绍了python文字转语音实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用百度接口 接口地址 ...

用Python编写脚本使IE实现代理上网的教程

厂里上个网需要设置代理服务器,切换各种环境『包括但不仅限于开发环境、QA、预上线、验收、生产环境、压力测试、Demo……』都需要给浏览器设置不同的代理服务器。 虽然俺有神器Firefox...

python3 unicode列表转换为中文的实例

python3 unicode列表转换为中文的实例

查了很多很多的资料无果,果然知乎牛逼,完美解决。 爬取网站时,最终得到list内容,编码为unicode,想让其转换为汉字并输出。 需要提取的为下图中unicode部分: 保存为列表...

django drf框架中的user验证以及JWT拓展的介绍

登录注册是几乎所有网站都需要去做的接口,而说到登录,自然也就涉及到验证以及用户登录状态保存,最近用DRF在做的一个关于网上商城的项目中,引入了一个拓展DRF JWT,专门用于做验证和用户...