生日礼物当然不能随便草草做了,效果如图

画图同时会用threading播放背景音乐
还是老毛病,资源文件pyinstaller打包不能读取,就是不能播放背景音乐,但是这个打包后是直接闪退,解决方法可参考我的这两篇
https://mp.csdn.net/mdeditor/101147129#
https://mp.csdn.net/mdeditor/101158379#
下面是代码(为了解决颜色空白真的写的好累)
补充一点,KIVY可以成功打包turtle库的程序,把它放到子函数里就行了

import threading
def play_music():import pygameimport time#import bfilepath = r"勾指起誓.mp3";pygame.mixer.init()# 加载音乐pygame.mixer.music.load(filepath)pygame.mixer.music.play(start=0.0)#播放时长,没有此设置,音乐不会播放,会一次性加载完time.sleep(183)pygame.mixer.music.play(loops)
#下面是画哆啦的所有代码
def painting():import turtle as tdef my_goto(x,y):t.penup()t.goto(x,y)t.pendown()def eyes():t.tracer(False)a=2.5for i in range(120):if 0 <=i<30 or 60<=i<90:a-=0.05t.lt(3)t.fd(a)else:a+=0.05t.lt(3)t.fd(a)t.tracer(True)t.title('哆啦A梦')t.pensize(3)t.penup()t.circle(150,40)t.pendown()t.fillcolor("#00a0de")#头颜色t.begin_fill()t.circle(150,280)t.end_fill()t.fillcolor("#e70010")#项圈颜色t.begin_fill()t.seth(0)t.fd(200)t.circle(-5,90)t.fd(10)t.circle(-5,90)t.fd(207)t.circle(-5,90)t.fd(10)t.circle(-5,90)t.end_fill()#脸t.fd(183)t.fillcolor('#ffffff')#脸颜色t.begin_fill()t.lt(45)t.circle(120,100)t.seth(90)eyes()#右边眼睛的圈t.penup()t.seth(180)t.fd(60)t.pendown()t.seth(90)eyes()t.penup()t.seth(180)t.fd(60)t.pendown()t.seth(215)t.circle(120,100)t.end_fill()my_goto(-10,158)t.fillcolor('#e70010')#鼻子t.begin_fill()t.circle(20)t.end_fill()my_goto(5,148)t.seth(270)t.fd(100)t.seth(0)t.circle(120,50)t.seth(230)t.circle(-120,100)#胡须my_goto(-37,135)t.seth(165)t.fd(60)my_goto(-37,125)t.seth(180)t.fd(60)my_goto(-37,115)t.seth(193)t.fd(60)my_goto(37,135)t.seth(15)t.fd(60)my_goto(37,125)t.seth(0)t.fd(60)my_goto(37,115)t.seth(-13)t.fd(60)my_goto(0,0)t.seth(0)#位置代码my_goto(0,0)t.seth(0)t.penup()t.circle(150,50)t.pendown()t.pencolor('black')t.pensize('1')t.pendown()#身躯t.fillcolor('#00a0de')#先涂右胳膊t.begin_fill()t.seth(30)#角度t.fd(40)#长度t.seth(70)#角度t.circle(-30,270)t.seth(230)t.fd(80)t.end_fill()my_goto(0,0)#定位右边手t.seth(0)t.penup()t.circle(150,50)t.pendown()t.fillcolor('#ffffff')#涂右手t.begin_fill()t.seth(30)#角度t.fd(40)#长度t.seth(70)#角度t.circle(-30,360)t.end_fill()#修复右胳膊空白#三角修复my_goto(0,0)#重新定位右边手#保证位置不变t.seth(0)t.penup()t.circle(150,50)t.pencolor('#00a0de')#改笔颜色t.pendown()#开始用三角形修复空白t.fillcolor('#00a0de')t.begin_fill()t.seth(-90)#向下旋转90度竖的直角边角度t.fd(18)#竖长t.seth(180)#旋转180度画横的直角边t.fd(20)#横长t.seth(60)#斜边与横的夹角t.fd(20*(2**(1/2)))#1:1:根号2算出斜边长t.end_fill()#长方形修复my_goto(0,0)#重新定位右边手#保证位置不变t.seth(0)t.penup()t.circle(150,50)#t.pencolor('#00a0de')#改笔颜色t.pendown()#开始用长方形修复空白t.fillcolor('#00a0de')t.begin_fill()t.seth(-90)#向下旋转90度竖的直角边角度t.fd(90)#竖长t.seth(180)#旋转180度画横的直角边t.fd(4)#横长t.seth(90)#斜边与横的夹角t.fd(90)#1:1:根号2算出斜边长t.end_fill()my_goto(0,0)#重新定位右边手#保证位置不变t.seth(0)t.penup()t.pencolor('black')#改笔颜色t.circle(150,50)t.pendown()t.seth(30)#角度t.fd(40)#长度t.seth(70)#角度t.circle(-30,270)t.seth(230)t.fd(80)#身体下方,左手左胳膊t.fillcolor('#00a0de')t.begin_fill()t.seth(-89)t.circle(-1000,10)t.seth(180)t.fd(70)t.seth(90)t.circle(30,180)#微调看不出来胳膊的变化t.seth(180)t.fd(70)t.seth(100)t.circle(-1000,9)t.seth(240)#到达左胳膊t.fd(40)#t.pencolor('white')t.circle(-30,250)#蓝色的手不需要t.seth(50)t.fd(70)t.end_fill()#开始用同样的方法修复左边的手my_goto(0,0)#定位到右边手t.seth(0)t.penup()t.circle(150,50)t.seth(30)#角度t.fd(40)#长度t.seth(70)#角度t.circle(-30,270)t.seth(230)t.fd(80)t.seth(-89)t.circle(-1000,10)t.seth(180)t.fd(70)t.seth(90)t.circle(30,180)#走原路t.seth(180)t.fd(70)t.seth(100)t.circle(-1000,9)t.seth(240)#到达左胳膊t.fd(40)#开始涂左手t.fillcolor('white')t.begin_fill()t.circle(-30,360)#白色的手半径一样t.end_fill()t.seth(50)t.fd(70)#身体上方空白修复t.penup()my_goto(-100,20)t.pendown()t.pencolor('#00a0de')t.fillcolor('#00a0de')t.begin_fill()t.seth(0)t.fd(210)t.seth(-90)t.fd(70)t.seth(180)t.fd(210)t.seth(90)t.fd(200)t.end_fill()#小空隙填充t.penup()my_goto(-100,20)my_goto(103.74,-197.59)t.pencolor('black')t.fillcolor('#ffffff')#右脚t.begin_fill()t.seth(0)t.fd(15)t.circle(-15,180)t.fd(90)t.circle(-15,180)t.fd(10)t.end_fill()my_goto(-96.26,-197.59)t.seth(180)t.fillcolor('#ffffff')#左脚t.begin_fill()t.fd(15)t.circle(15,180)t.fd(90)t.circle(15,180)t.fd(10)t.end_fill()t.penup()my_goto(-103.42,15.09)t.seth(0)t.fd(38)t.seth(230)t.pendown()t.pencolor('#00a0de')#改笔颜色t.fillcolor('#ffffff')#肚子t.begin_fill()t.circle(90,260)t.end_fill()my_goto(5,-40)t.seth(0)t.pencolor('black')#改笔颜色t.fillcolor('#ffffff')#百宝袋t.begin_fill()t.fd(70)t.seth(-90)t.circle(-70,180)t.seth(0)t.fd(70)t.end_fill()my_goto(-103.42,15.09)t.penup()#去掉铃铛旁边的线t.fd(90)t.seth(70)t.pendown()t.fillcolor('#ffd200')#铃铛颜色t.begin_fill()t.circle(-20)t.end_fill()t.goto(-13.42,15.09)t.seth(250)t.circle(20,110)t.seth(90)t.fd(15)t.dot(10)my_goto(0,-150)t.seth(0)my_goto(-20,195)t.fillcolor('#000000')#眼睛颜色t.begin_fill()t.circle(13)t.end_fill()t.pensize(6)my_goto(20,205)t.seth(75)t.circle(-10,150)t.pensize(3)my_goto(-17,200)t.seth(0)t.fillcolor('#ffffff')#眼睛里的光颜色t.begin_fill()t.circle(5)t.end_fill()my_goto(0,0)t.mainloop()
threads = []
threads.append(threading.Thread(target=play_music))
threads.append(threading.Thread(target=painting))
if __name__ == '__main__':for t in threads:t.start()

9.25 13:14修改,代码优化,使得音乐可以循环播放

import threading
def play_music():import pygameimport time#import bfilepath = r"勾指起誓.mp3";pygame.mixer.init()# 加载音乐pygame.mixer.music.set_volume(2) pygame.mixer.music.load(filepath)pygame.mixer.music.play(start=0.0)#播放时长,没有此设置,音乐不会播放,会一次性加载完time.sleep(183)pygame.mixer.music.fadeout(5)#pygame.mixer.music.set_endevent() play_music()#递归重新放音乐#pygame.mixer.music.play(loops)
#画哆啦
def painting():import turtle as tdef my_goto(x,y):t.penup()t.goto(x,y)t.pendown()def eyes():t.tracer(False)a=2.5for i in range(120):if 0 <=i<30 or 60<=i<90:a-=0.05t.lt(3)t.fd(a)else:a+=0.05t.lt(3)t.fd(a)t.tracer(True)t.title('哆啦A梦祝你生日快乐')t.screensize(15000,15000, "pink")t.pensize(3)t.penup()t.circle(150,40)t.pendown()t.fillcolor("#00a0de")#头颜色t.begin_fill()t.circle(150,280)t.end_fill()t.fillcolor("#e70010")#项圈颜色t.begin_fill()t.seth(0)t.fd(200)t.circle(-5,90)t.fd(10)t.circle(-5,90)t.fd(207)t.circle(-5,90)t.fd(10)t.circle(-5,90)t.end_fill()#脸t.fd(183)t.fillcolor('#ffffff')#脸颜色t.begin_fill()t.lt(45)t.circle(120,100)t.seth(90)eyes()#右边眼睛的圈t.penup()t.seth(180)t.fd(60)t.pendown()t.seth(90)eyes()t.penup()t.seth(180)t.fd(60)t.pendown()t.seth(215)t.circle(120,100)t.end_fill()my_goto(-10,158)t.fillcolor('#e70010')#鼻子t.begin_fill()t.circle(20)t.end_fill()my_goto(5,148)t.seth(270)t.fd(100)t.seth(0)t.circle(120,50)t.seth(230)t.circle(-120,100)#胡须my_goto(-37,135)t.seth(165)t.fd(60)my_goto(-37,125)t.seth(180)t.fd(60)my_goto(-37,115)t.seth(193)t.fd(60)my_goto(37,135)t.seth(15)t.fd(60)my_goto(37,125)t.seth(0)t.fd(60)my_goto(37,115)t.seth(-13)t.fd(60)my_goto(0,0)t.seth(0)#位置代码my_goto(0,0)t.seth(0)t.penup()t.circle(150,50)t.pendown()t.pencolor('black')t.pensize('1')t.pendown()#身躯t.fillcolor('#00a0de')#先涂右胳膊t.begin_fill()t.seth(30)#角度t.fd(40)#长度t.seth(70)#角度t.circle(-30,270)t.seth(230)t.fd(80)t.end_fill()my_goto(0,0)#定位右边手t.seth(0)t.penup()t.circle(150,50)t.pendown()t.fillcolor('#ffffff')#涂右手t.begin_fill()t.seth(30)#角度t.fd(40)#长度t.seth(70)#角度t.circle(-30,360)t.end_fill()#修复右胳膊空白#三角修复my_goto(0,0)#重新定位右边手#保证位置不变t.seth(0)t.penup()t.circle(150,50)t.pencolor('#00a0de')#改笔颜色t.pendown()#开始用三角形修复空白t.fillcolor('#00a0de')t.begin_fill()t.seth(-90)#向下旋转90度竖的直角边角度t.fd(18)#竖长t.seth(180)#旋转180度画横的直角边t.fd(20)#横长t.seth(60)#斜边与横的夹角t.fd(20*(2**(1/2)))#1:1:根号2算出斜边长t.end_fill()#长方形修复my_goto(0,0)#重新定位右边手#保证位置不变t.seth(0)t.penup()t.circle(150,50)#t.pencolor('#00a0de')#改笔颜色t.pendown()#开始用长方形修复空白t.fillcolor('#00a0de')t.begin_fill()t.seth(-90)#向下旋转90度竖的直角边角度t.fd(90)#竖长t.seth(180)#旋转180度画横的直角边t.fd(4)#横长t.seth(90)#斜边与横的夹角t.fd(90)#1:1:根号2算出斜边长t.end_fill()my_goto(0,0)#重新定位右边手#保证位置不变t.seth(0)t.penup()t.pencolor('black')#改笔颜色t.circle(150,50)t.pendown()t.seth(30)#角度t.fd(40)#长度t.seth(70)#角度t.circle(-30,270)t.seth(230)t.fd(80)#身体下方,左手左胳膊t.fillcolor('#00a0de')t.begin_fill()t.seth(-89)t.circle(-1000,10)t.seth(180)t.fd(70)t.seth(90)t.circle(30,180)#微调看不出来胳膊的变化t.seth(180)t.fd(70)t.seth(100)t.circle(-1000,9)t.seth(240)#到达左胳膊t.fd(40)#t.pencolor('white')t.circle(-30,250)#蓝色的手不需要t.seth(50)t.fd(70)t.end_fill()#开始用同样的方法修复左边的手my_goto(0,0)#定位到右边手t.seth(0)t.penup()t.circle(150,50)t.seth(30)#角度t.fd(40)#长度t.seth(70)#角度t.circle(-30,270)t.seth(230)t.fd(80)t.seth(-89)t.circle(-1000,10)t.seth(180)t.fd(70)t.seth(90)t.circle(30,180)#走原路t.seth(180)t.fd(70)t.seth(100)t.circle(-1000,9)t.seth(240)#到达左胳膊t.fd(40)#开始涂左手t.fillcolor('white')t.begin_fill()t.circle(-30,360)#白色的手半径一样t.end_fill()t.seth(50)t.fd(70)#身体上方空白修复t.penup()my_goto(-100,20)t.pendown()t.pencolor('#00a0de')t.fillcolor('#00a0de')t.begin_fill()t.seth(0)t.fd(210)t.seth(-90)t.fd(70)t.seth(180)t.fd(210)t.seth(90)t.fd(200)t.end_fill()#小空隙填充t.penup()my_goto(-100,20)my_goto(103.74,-197.59)t.pencolor('black')t.fillcolor('#ffffff')#右脚t.begin_fill()t.seth(0)t.fd(15)t.circle(-15,180)t.fd(90)t.circle(-15,180)t.fd(10)t.end_fill()my_goto(-96.26,-197.59)t.seth(180)t.fillcolor('#ffffff')#左脚t.begin_fill()t.fd(15)t.circle(15,180)t.fd(90)t.circle(15,180)t.fd(10)t.end_fill()t.penup()my_goto(-103.42,15.09)t.seth(0)t.fd(38)t.seth(230)t.pendown()t.pencolor('#00a0de')#改笔颜色t.fillcolor('#ffffff')#肚子t.begin_fill()t.circle(90,260)t.end_fill()my_goto(5,-40)t.seth(0)t.pencolor('black')#改笔颜色t.fillcolor('#ffffff')#百宝袋t.begin_fill()t.fd(70)t.seth(-90)t.circle(-70,180)t.seth(0)t.fd(70)t.end_fill()my_goto(-103.42,15.09)t.penup()#去掉铃铛旁边的线t.fd(90)t.seth(70)t.pendown()t.fillcolor('#ffd200')#铃铛颜色t.begin_fill()t.circle(-20)t.end_fill()t.goto(-13.42,15.09)t.seth(250)t.circle(20,110)t.seth(90)t.fd(15)t.dot(10)my_goto(0,-150)t.seth(0)my_goto(-20,195)t.fillcolor('#000000')#眼睛颜色t.begin_fill()t.circle(13)t.end_fill()t.pensize(6)my_goto(20,205)t.seth(75)t.circle(-10,150)t.pensize(3)my_goto(-17,200)t.seth(0)t.fillcolor('#ffffff')#眼睛里的光颜色t.begin_fill()t.circle(5)t.end_fill()my_goto(0,0)t.mainloop()
threads = []
threads.append(threading.Thread(target=play_music))
threads.append(threading.Thread(target=painting))
if __name__ == '__main__':for t in threads:t.start()

用threading+turtle画哆啦A梦,同时播放背景音乐相关推荐

  1. 用Python的Turtle画哆啦A梦

    这是我几年前为了练习python的turtle库而画的,今天翻出了代码,分享给大家. 这是我初学python时画的,当时还没有面向对象的概念,也没有采取类方法之类,纯原始手工,供大家参考. 若有兴趣可 ...

  2. 用python画多来a梦-使用Python的Turtle绘制哆啦A梦实例

    这是我几年前为了练习python的turtle库而画的,今天翻出了代码,分享给大家. 这是我初学python时画的,当时还没有面向对象的概念,也没有采取类方法之类,纯原始手工,供大家参考. 若有兴趣可 ...

  3. 哆啦a梦简单图画python编程_[python]画哆啦A梦,Python,绘制

    from turtle import * #无轨迹跳跃 defmy_goto(x, y): penup() goto(x, y) pendown()#眼睛 defeyes(): fillcolor(& ...

  4. python画图哆啦a梦-使用Python的Turtle绘制哆啦A梦实例

    这是我几年前为了练习python的turtle库而画的,今天翻出了代码,分享给大家. 这是我初学python时画的,当时还没有面向对象的概念,也没有采取类方法之类,纯原始手工,供大家参考. 若有兴趣可 ...

  5. 多啦a梦的python代码_分享一篇文本文档画哆啦A梦代码!

    #encoding=utf-8 #Drawcat 画多啦A梦 from turtle import * # 无轨迹跳跃 def my_goto(x, y): penup() goto(x, y) pe ...

  6. 用java画哆啦a梦,来画哆啦A梦吧!

    import turtle 创建哆啦A梦 doraemon = turtle.Turtle() doraemon.speed(10) def draw_eye_white_circle(x): dor ...

  7. 用Python画哆啦A梦

    from turtle import *# 无轨迹跳跃 def my_goto(x, y):penup()goto(x, y)pendown()# 眼睛 def eyes():fillcolor(&q ...

  8. 用python画哆啦a梦的头,用python画多来a梦-【Python】绘制哆啦A梦

    from turtle import * #无轨迹跳跃 defmy_goto(x, y): penup() goto(x, y) pendown()#眼睛 defeyes(): fillcolor(& ...

  9. 用python画哆啦a梦的身体_每天一个Python小技巧,用Python 画个多啦A梦,小猪佩奇,文末还有Python入门学习视频...

    见网络上有人用Python 画出来个多啦A梦,很是新奇,来来来,我们看一下他们主要用到的库. 其实主要用的库就一个 turtle 库 先说明一下turtle绘图的基础知识: 1. 画布(canvas) ...

最新文章

  1. 路由器级联后网速慢的原因分析和问题解决
  2. 方法执行[置顶] onPause()和onStop()的使用方法及注意事项
  3. 递归,记忆化搜索,(棋盘分割)
  4. JSP标准标签库(JSTL)--简介
  5. c语言中continue在case中,C語言switch case 語句中能否使用continue 關鍵字?
  6. JAVA 13 (集合框架)
  7. python基础之元组定义进阶操作、字典定义进阶操作
  8. Linux服务-bind
  9. python实现k core算法_python实现k-近邻算法
  10. OHSAS18001与ISO14001体系的一体化及其审核(转载)
  11. AbMole推荐:人源化单抗动物实验黄金指南 (上)
  12. 结合使用katex html2canvas 将LaTeX公式保存为图片
  13. 【计算机毕业设计】018实习记录
  14. 11. python入门复习教程之命名空间与作用域,再谈异常,标准库,持久化与序列化
  15. matlab:变计算精度函数vpa,digits
  16. 行人检测(Pedestrian Detection)资源与更新
  17. Winsock 完成端口模型简介
  18. Kubernetes Secret的应用
  19. 解密3D打印技术与产业的发展及前景
  20. 默认开启“停用HW叠加层”开关,强制GPU渲染

热门文章

  1. 趣写算法系列之--匈牙利算法
  2. <LeetCode天梯>Day004 买卖股票的最佳时机 II(DP动态规划法) | 初级算法 | Python
  3. (嵌入式)机器人操作系统(ROS)入门
  4. linux安装mysqli
  5. MS5611气压计原理图设计
  6. URL格式java_URLConnection格式与用法
  7. BT配对/取消配对示例
  8. c语言实现FIFO算法和LRU算法,C语言实现FIFO算法与LRU算法
  9. matlab读jpg有三个通道,图像为“灰度图像”
  10. 固体物理半导体物理部分概念解析