来自程序员的圣诞节浪漫-用Python画一棵带音乐的雪夜圣诞树
本文我们用 Python 来画一棵带音乐效果的雪夜圣诞树,基本思路如下:
- 用 Python 画一棵圣诞树作为背景图
- 在圣诞树背景图中添加雪落效果及音乐
下面来看一下具体实现。
首先,我们来画一棵圣诞树,主要用到的 Python 库为 turtle,主要代码实现如下:
n = 80.0
turtle.setup(700, 700, 0, 0)
turtle.speed("fastest")
turtle.screensize(bg='black')
turtle.left(90)
turtle.forward(3 * n)
turtle.color("orange", "yellow")
turtle.begin_fill()
turtle.left(126)
for i in range(5):turtle.forward(n / 5)turtle.right(144)turtle.forward(n / 5)turtle.left(72)
turtle.end_fill()
turtle.right(126)
turtle.color("dark green")
turtle.backward(n * 4.8)
def tree(d, s):if d <= 0: returnturtle.forward(s)tree(d - 1, s * .8)turtle.right(120)tree(d - 3, s * .5)turtle.right(120)tree(d - 3, s * .5)turtle.right(120)turtle.backward(s)
tree(15, n)
turtle.backward(n / 2)
for i in range(200):a = 200 - 400 * random.random()b = 10 - 20 * random.random()turtle.up()turtle.forward(b)turtle.left(90)turtle.forward(a)turtle.down()if random.randint(0, 1) == 0:turtle.color('tomato')else:turtle.color('wheat')turtle.circle(2)turtle.up()turtle.backward(a)turtle.right(90)turtle.backward(b)
time.sleep(60)
看一下效果:
接着将圣诞树作为背景图添加雪落效果及音乐,主要用到的 Python 库为 pygame,主要代码实现如下:
# 初始化 pygame
pygame.init()
#设置屏幕宽高,根据背景图调整
bg_img = "bg.png"
bg_size = (609, 601)
screen = pygame.display.set_mode(bg_size)
pygame.display.set_caption("雪夜圣诞树")
bg = pygame.image.load(bg_img)
# 雪花列表
snow_list = []
for i in range(150):x_site = random.randrange(0, bg_size[0]) # 雪花圆心位置y_site = random.randrange(0, bg_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('my.mp3') # 加载音乐文件
pygame.mixer.music.play() # 播放音乐流
pygame.mixer.music.fadeout(600000) # 设置音乐结束时间
done = False
while not done:# 消息事件循环,判断退出for event in pygame.event.get():if event.type == pygame.QUIT:done = Truescreen.blit(bg, (0, 0))# 雪花列表循环for i in range(len(snow_list)):# 绘制雪花,颜色、位置、大小pygame.draw.circle(screen, (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] > bg_size[1]:snow_list[i][1] = random.randrange(-50, -10)snow_list[i][0] = random.randrange(0, bg_size[0])# 刷新屏幕pygame.display.flip()clock.tick(30)
# 退出
pygame.quit()
看一下最终效果:
这里就不放视频了,大家如果想听一下音乐效果可以自己获取源码执行一下。
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1156465813
来自程序员的圣诞节浪漫-用Python画一棵带音乐的雪夜圣诞树相关推荐
- python画雪景_来自程序员的圣诞节浪漫-用Python画一棵带音乐的雪夜圣诞树
本文我们用 Python 来画一棵带音乐效果的雪夜圣诞树,基本思路如下: 用 Python 画一棵圣诞树作为背景图 在圣诞树背景图中添加雪落效果及音乐 下面来看一下具体实现. 首先,我们来画一棵圣诞树 ...
- python画雪_用Python画一棵带音乐的雪夜圣诞树
本文我们用 Python 来画一棵带音乐效果的雪夜圣诞树,基本思路如下:用 Python 画一棵圣诞树作为背景图 在圣诞树背景图中添加雪落效果及音乐 下面来看一下具体实现. 首先,我们来画一棵圣诞树, ...
- 【Python教你一招】画一棵带音乐的雪夜圣诞树 | 附源代码
源码在Python学习交流群:733089476 获取 本文我们用 Python 来画一棵带音乐效果的雪夜圣诞树,基本思路如下: 1.用 Python 画一棵圣诞树作为背景图 2.在圣诞树背景图中添加 ...
- 来自程序员的福利!用Python做一款翻译软件
来源 | Ahab杂货铺(ID:PythonLearningCamp) 前两天吃了平哥的一波狗粮,他给女朋友写了一个翻译软件,自己真真切切的感受到了程序员的浪漫.在学习requests请求的时候做过类 ...
- 来自程序员的专属浪漫
格子衬衣双肩书包,泛着科技光芒的键盘 这就是程序员与代码的恋爱日常 再甜蜜些的还可能配上100W的锃亮头顶 拿起键盘我就不能亲亲抱抱举高高你 放下键盘我就不能给你买阿玛尼和古琦 世人笑我不浪漫,我笑世 ...
- 程序员如何 10 分钟用 Python 画出蒙娜丽莎?
之前看到过很多头条,说哪国某人坚持了多少年自学使用excel画画,效果十分惊艳.对于他们的耐心我十分敬佩. 但是作为一个程序员,自然也得挑战一下自己. 这种需求,我们十分钟就可以完成! 基本思路 ! ...
- 来自程序员的圣诞浪漫纯CSS3打造的圣诞祝福【献给前端初学者】内附代码以及运行方法
如果你想编一个简单的圣诞树送给你的男/女朋友的话, 这里也许有你要的东西, 对于你也许他很简单,不值一提. 但是对于小白,也许是他入门HTML.css3的极佳小项目 代码运行方式:代码运行很简单,解压 ...
- 小猪佩奇代码话,我是社会程序员,分享一篇python画小猪佩奇代码!
#!/usr/bin/env python2 # coding=utf-8 import turtle as t t.pensize(4) t.hideturtle() t.colormode(255 ...
- 程序员的浪漫——用Python画一颗会发光的圣诞树
圣诞节到了,给你最爱的人送上一棵python做的圣诞树吧. 程序员的专属浪漫.我的朋友圈已经让圣诞树刷屏了. 今天来给大家分享一波如何使用 Python 来画一颗圣诞节树,包含多种 版本,从平民版到豪 ...
最新文章
- ListT随机返回一个
- 关于前后端配合开发的一点想法
- IdentityServer4 知多少
- uva 11491——Erasing and Winning
- 【转载保存】ThreadPoolExecutor类使用详解
- JQuery根据关键字检索html元素并筛选显示
- JAVA面试速记,面试速记之computed与watch的区别
- android computescroll_Android Scroller与computeScroll的调用机制关系
- 深度可分离卷积及其代码实现
- ios订阅其他国家节假日日历
- C#实现多人语音聊天
- c语言分苹果程序,小朋友学C语言(14):分苹果(小学奥数题)
- 高通Display架构
- python生成中文词云图
- C语言实现进程间通信
- hadoop入门介绍(一)
- html文字自动调整位置,启步学HTML代码(3)文字显示位置控制的代码
- AnnotationConfigApplicationContext@51016012 has not been refreshed yet
- 【学业常识】学位授予和人才培养学科目录(培养硕博研究生的专业/学科目录)
- 一步步教你实现富本文编辑器(第二部分)