首页 > 数据库 > 数据库开发技术 > Python绘制漫天的雪花,漫步天涯
经过研究终于用Python实现啦
!
本文就跟大家一起来看下,加了背景图片和音乐的下雪图吧
。
漫天雪花效果图
1.1 漫天的雪花漫步天涯
1.2 并肩看雪景
1.3 执子之手与子偕老
漫天雪花实现原理
漫天雪花实现分步骤讲解
3.1 加载包
3.2 设置窗口大小
3.3 控制雪花的下降速度并添加背景图片
3.4 通过循环实现动态下雪
先来听听本文用Python添加的背景音乐。
PS:由于视频较多,建议在wify下阅读。

雪意寒凉,冰冷了几世千年的轮回。繁华消落成颗颗泛黄泪珠,是凋零,还是化腐朽为神奇?
二、漫天雪花实现原理

step1:绘制下雪的雪花,控制下降的速度和偏移量。
step2:添加下雪的背景图片。
step3:播放背景音乐,控制暂停和重新开始的按钮。
接下来看下具体的实现代码。
三、漫天雪花实现分步骤讲解

# -*- coding: utf-8 -*-"""代码用途:模拟漫天的雪花漫步天涯作者:阿黎逸阳"""import pygameimport randomimport osfrom turtle import *from pygame.locals import *
可以设置全屏显示窗口,也可以根据背景图片自定义窗口大小。
os.chdir(r'F:\微信公众号\Python\42_python下雪')pygame.init() #初始化pygameSIZE = (790, 430) #设置屏幕宽长,根据背景图片调整(或者调整图片)bg_size = width, height = 300, 200 #设置开始和关闭界面窗口bg_rgb = (255, 255, 255)screen = pygame.display.set_mode(bg_size)screen = pygame.display.set_mode(SIZE)screen1 = pygame.display.set_mode(SIZE)pygame.display.set_caption("漫天的雪花,漫步天涯")
bg = pygame.image.load('两个人雪中漫步V3.jpg')snow_list = [] #雪花列表for i in range(300):x_site = random.randrange(0, SIZE[0]) #雪花圆心位置y_site = random.randrange(0, SIZE[1]) #雪花圆心位置X_shift = random.randint(-1, 1) #x轴偏移量radius = random.randint(4, 6) #半径和y周下降量snow_list.append([x_site, y_site, X_shift, radius])clock = pygame.time.Clock() #创建设置帧率对象track = pygame.mixer.music.load('唯美时光静好.mp3') # 加载音乐文件pygame.mixer.music.play() # 开始播放音乐流pygame.mixer.music.fadeout(600000) #设置音乐多久慢慢淡出结束play_image = pygame.image.load("两个人雪中漫步V3.jpg").convert_alpha() # 创建播放图片surface对象pause_image = pygame.image.load("两个人雪中漫步V3.jpg").convert_alpha() # 创建暂停图片surface对象pause_rect = pause_image.get_rect() #获取播放矩形框print(pause_rect.width,pause_rect.height) #获取暂停矩形框pause_rect.left, pause_rect.top = (width - pause_rect.width) // 2, (height - pause_rect.height) // 2pause = False # 定义播放标志位
while True:for event in pygame.event.get():if event.type == QUIT:sys.exit()screen1.blit(bg, (0, 0))for i in range(len(snow_list)):pygame.draw.circle(screen1, (255, 255, 255), snow_list[i][:2], snow_list[i][3]-3)snow_list[i][0] += snow_list[i][2]snow_list[i][1] += snow_list[i][3]if snow_list[i][1] > SIZE[1]:snow_list[i][0] = random.randrange(0, SIZE[0])snow_list[i][1] = random.randrange(0, SIZE[1])pygame.display.flip()clock.tick(20)pygame.quit()
Surface:表示对象,代表窗口屏幕。
color:圆的颜色。
pos:圆心位置。
radius:圆的半径。
width:边框的宽度,如果设置为 0 则表示填充该图形。
。
https://zhuanlan.zhihu.com/p/93245919https://blog.csdn.net/python36/article/details/82838957https://zhidao.baidu.com/question/1452769866435471900.html


扫一扫关注我
19967879837
投稿微信号、手机
原文作者:阿黎逸阳的代码;如有侵权,请联系管理员删除。