本文我们用 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画一棵带音乐的雪夜圣诞树相关推荐

  1. python画雪景_来自程序员的圣诞节浪漫-用Python画一棵带音乐的雪夜圣诞树

    本文我们用 Python 来画一棵带音乐效果的雪夜圣诞树,基本思路如下: 用 Python 画一棵圣诞树作为背景图 在圣诞树背景图中添加雪落效果及音乐 下面来看一下具体实现. 首先,我们来画一棵圣诞树 ...

  2. python画雪_用Python画一棵带音乐的雪夜圣诞树

    本文我们用 Python 来画一棵带音乐效果的雪夜圣诞树,基本思路如下:用 Python 画一棵圣诞树作为背景图 在圣诞树背景图中添加雪落效果及音乐 下面来看一下具体实现. 首先,我们来画一棵圣诞树, ...

  3. 【Python教你一招】画一棵带音乐的雪夜圣诞树 | 附源代码

    源码在Python学习交流群:733089476 获取 本文我们用 Python 来画一棵带音乐效果的雪夜圣诞树,基本思路如下: 1.用 Python 画一棵圣诞树作为背景图 2.在圣诞树背景图中添加 ...

  4. 来自程序员的福利!用Python做一款翻译软件

    来源 | Ahab杂货铺(ID:PythonLearningCamp) 前两天吃了平哥的一波狗粮,他给女朋友写了一个翻译软件,自己真真切切的感受到了程序员的浪漫.在学习requests请求的时候做过类 ...

  5. 来自程序员的专属浪漫

    格子衬衣双肩书包,泛着科技光芒的键盘 这就是程序员与代码的恋爱日常 再甜蜜些的还可能配上100W的锃亮头顶 拿起键盘我就不能亲亲抱抱举高高你 放下键盘我就不能给你买阿玛尼和古琦 世人笑我不浪漫,我笑世 ...

  6. 程序员如何 10 分钟用 Python 画出蒙娜丽莎?

    之前看到过很多头条,说哪国某人坚持了多少年自学使用excel画画,效果十分惊艳.对于他们的耐心我十分敬佩. 但是作为一个程序员,自然也得挑战一下自己. 这种需求,我们十分钟就可以完成! 基本思路 ! ...

  7. 来自程序员的圣诞浪漫纯CSS3打造的圣诞祝福【献给前端初学者】内附代码以及运行方法

    如果你想编一个简单的圣诞树送给你的男/女朋友的话, 这里也许有你要的东西, 对于你也许他很简单,不值一提. 但是对于小白,也许是他入门HTML.css3的极佳小项目 代码运行方式:代码运行很简单,解压 ...

  8. 小猪佩奇代码话,我是社会程序员,分享一篇python画小猪佩奇代码!

    #!/usr/bin/env python2 # coding=utf-8 import turtle as t t.pensize(4) t.hideturtle() t.colormode(255 ...

  9. 程序员的浪漫——用Python画一颗会发光的圣诞树

    圣诞节到了,给你最爱的人送上一棵python做的圣诞树吧. 程序员的专属浪漫.我的朋友圈已经让圣诞树刷屏了. 今天来给大家分享一波如何使用 Python 来画一颗圣诞节树,包含多种 版本,从平民版到豪 ...

最新文章

  1. ListT随机返回一个
  2. 关于前后端配合开发的一点想法
  3. IdentityServer4 知多少
  4. uva 11491——Erasing and Winning
  5. 【转载保存】ThreadPoolExecutor类使用详解
  6. JQuery根据关键字检索html元素并筛选显示
  7. JAVA面试速记,面试速记之computed与watch的区别
  8. android computescroll_Android Scroller与computeScroll的调用机制关系
  9. 深度可分离卷积及其代码实现
  10. ios订阅其他国家节假日日历
  11. C#实现多人语音聊天
  12. c语言分苹果程序,小朋友学C语言(14):分苹果(小学奥数题)
  13. 高通Display架构
  14. python生成中文词云图
  15. C语言实现进程间通信
  16. hadoop入门介绍(一)
  17. html文字自动调整位置,启步学HTML代码(3)文字显示位置控制的代码
  18. AnnotationConfigApplicationContext@51016012 has not been refreshed yet
  19. 【学业常识】学位授予和人才培养学科目录(培养硕博研究生的专业/学科目录)
  20. 一步步教你实现富本文编辑器(第二部分)

热门文章

  1. 用腾讯轻联,打通草料二维码与其他应用的连接
  2. HTML5 canvas clearRect() 方法
  3. Netty学习记录-初步认识Netty及I/O模型
  4. C语言 产生随机数rand()
  5. python父亲节礼物送什么_想送给奶爸一个特别的父亲节礼物,送什么比较好?
  6. IDEA彻底删除项目
  7. Phalcon使用多语言环境(切换中文/英文等)
  8. openjudge 宗教信仰
  9. Solana基金会主席Lily Liu作客直播间:Web3赛道支付方式由Zebec主导
  10. 8848从顶峰走向衰微的历史见证