Python寓义动画_豹的速度_一往无前

Python海龟宝典含200多个原创的用turtle模块制作的创意程序,原名《Python趣味编程200例》。准备参加全国创意编程与智能设计大赛的同学们可以用来做参考。

人类历史长河或许很长很长,但是相对于宇宙,我们仍旧非常渺小。虽然每个人的一生只是一瞬间。但是,我们要像豹子一样,勇往无前。

大家好,我是某某某。这是我用Python编程制作的一个小作品。
它的名字叫做《豹的速度,一往无前》。
这个作品是一个动画。运行程序后会有一个太阳在中间,
上面还有一只豹子在不断地奔跑着。
细心的话,我们还能看到月亮绕地球,地球绕太阳的动画。
伴随着背景音乐,还会有一些字幕显示出来。
这个作品描述的主要寓意就是,人类很渺小,
还有星辰大海等待着我们去探索。
我们每个人都要像豹子一样,一往无前。

下面,我先演示一下这个程序。(程序演示中……)

为了更加方便的理解程序。我把程序代码进行了分段。
每一段,都完成特定的功能。

第1段,是最简单的,只是程序的说明文字说明。
它实际上是一个没有名字的字符串。

第2段, 是从一些模块中导入一些命令。以供接下来的代码使用。

第3段,定义了程序的名字。但主要还是新建了窗口及对窗口进行设置。

第4段,无限循环播放背景音乐。注意PlaySound只能播放wav音频。

第5段,实现的是太阳动画。它是通过一些背景图片不断地切换来完成的。

第6段,实现的是豹子的动画。它是通过不断切换leopard对象的造型来完成的。

第7段,新建地球,它是一个海龟对象。它的造型是一张名为“地球.png”的图片。

第8段,新建月亮,它也是一个海龟对象。它的造型是圆形,并且是白色的。

第9段,新建dummy对象。它是用来写程序标题的隐藏海龟。

第10段,新建dummy2对象。它是用来写移动字幕的隐藏海龟。

第11段,新建了dummy3对象。它是用来写最底下的感谢信息的海龟。

第12段,新建了几个变量,然后进入了一个while循环。

这是程序的主循环。在这个主循环中主要分为A、B、C、D、E几段程序。

A段程序是地球的移动。B段程序是月亮绕地球的移动。

C段程序是让程序的标题逐步往上移的代码,一直到y坐标等于-260就不会移动了。

D段程序是实现从左到右的字幕的。
它不断地清除,不断地重写,同时x坐标不断减小,
所以我们能看到从左到右移动着的字幕。

E段代码,让程序进入主循环后,大概10秒后,在窗口最底下显示几个字。
这几个字就是“本程序由Python海龟模块制作,感谢观看。”

另外,这个作品全部用的是Python内置模块完成的,并不需要安装外置模块。
背景音乐的名字叫Just Blue。这是曾经中央电视台《动物世界》栏目的主题曲。

好了,程序就介绍到这里了。我知道一个程序最重要的是可读性。
这个程序,很多行都加了注释。希望给阅读者提供理解上的方便。

最后,非常感谢评委们认真地看了我的作品,谢谢。

"""
    豹的速度,一往无前
    这个作品有月亮绕地球,地球绕太阳公转,它们在太阳前面都显得很小很小。
    事实也是这样。寓义为人类在宇宙中是非常渺小的。人的一生非常有限。
    我们要向豹子一样义无反顾,勇往直前。
    
"""
from time import sleep
from math import sin,cos,radians
from turtle import Shape,Turtle,Screen
from winsound import PlaySound,SND_LOOP,SND_ASYNC

project = '豹的速度,一往无前'
screen = Screen()                            # 新建屏幕
screen.delay(0)                              # 延时为0毫秒
screen.setup(640,640)                        # 设置宽高  
screen.bgcolor('black')                      # 设置背景色
screen.title(project)

PlaySound('Just Blue.wav',SND_LOOP|SND_ASYNC)# 播放背景音乐

index = 0
sun_pics = [f"res/sun{i:03d}.png" for i in range(1,11)]
def alt_bg():                                # 定义函数,不断地切换太阳造型
    global index
    screen.bgpic(sun_pics[index])            # 设定背景图片
    index += 1                               # 索引号加1
    index %= 10                              # 索引号对10求余
    screen.ontimer(alt_bg,100)               # 100毫秒后再次调用alt_bg  
alt_bg()                                     # 调用alt_bg函数

bao_pics = [f"b/{i:04d}.png" for i in range(1,13)]  # 豹的造型图片
bao_shapes =[Shape('image',screen._image(im)) for im in bao_pics]# 豹的造型对象
[screen.addshape(f'bao{i}',bao_shapes[i]) for i in range(12)]    # 添加到造型字典
leopard = Turtle(shape='bao0')                                   # 新建“豹”对象
leopard.penup()                                                  # 抬笔
leopard.speed(0)                                                 # 速度为最快 
leopard.sety(180)                                                # 设定y坐标为180
leopard.index = 0                                      # 自定义属性,表示造型索引号
def alt_shape():                                       # 定义切换造型的函数 
    leopard.index += 1                                 # 索引号增加1
    leopard.index %= 12                                # 索引号对12求余
    sp = f'bao{leopard.index}'                         # 造型名称
    leopard.shape(sp)                                  # 设定豹的造型为sp 
    screen.ontimer(alt_shape,100)                      # 100毫秒后再次切换造型
alt_shape()                                            # 调用切换造型函数
    
earth_shape = Shape('image',screen._image('res/地球.png')) # 地球造型对象
screen.addshape('earth',earth_shape)                       # 注册到造型字典
earth_obj = Turtle(shape='earth')                          # 新建地球对象
earth_obj.penup()                                          # 抬笔
earth_obj.speed(0)                                         # 速度为最快 
                            
moon = Turtle(shape='circle')                              # 月亮对象
moon.penup()                                               # 抬笔  
moon.speed(0)                                              # 速度为最快
moon.shapesize(0.1)                                        # 缩小
moon.color('white')                                        # 颜色为白色 

dummy = Turtle(visible=False)                              # 新建dummy对象,用来写字
dummy.penup()                                              # 抬笔
dummy.speed(0)                                             # 速度为最快
dummy.color('yellow')                                      # 颜色为黄色
dummy.goto(0,-660)                                         # 坐标定位
ft = ('楷体',34,'normal')                                  # 字体样式

dummy2 = Turtle(visible=False)                             # 新建dummy2对象
dummy2.penup()
dummy2.speed(0)
dummy2.color('white')
dummy2.goto(1600,-200)
ft2 = ('黑体',20,'normal')                                 # 字体样式
 
dummy3= Turtle(visible=False)                              # 新建dummy3对象 
dummy3.penup()
dummy3.speed(0)
dummy3.color('cyan')
dummy3.goto(0,-300)
ft3 = ('宋体',12,'normal')                                  # 字体样式
string = "本程序由Python 海龟模块制作,感谢观看。"

radius = 300                                               # 地球绕太阳半径
angle = 0
r = 20                                                     # 月亮绕地球半径
a = 0
counter = 0
寓义 = '人类历史长河或许很长很长,但是相对于宇宙,我们仍旧非常渺小。虽然每个人的一生只是一瞬间。但是,我们要像豹子一样,勇往无前。'
while True:
    earth_x = radius * cos(radians(angle))                 # 算出地球x坐标
    earth_y = radius * sin(radians(angle))                 # 算出地球y坐标
    earth_obj.goto(earth_x,earth_y)                        # 到达坐标
    angle += 0.1

    moon_x = earth_x + r * cos(radians(a))                 # 算出月亮x坐标
    moon_y = earth_y + r * sin(radians(a))                 # 算出月亮y坐标
    moon.goto(moon_x,moon_y)                               # 到达坐标
    a += 1   
    
    if dummy.ycor()<-260:
        dummy.clear()                                      # 清除以前所写文字 
        dummy.write(project,align='center',font=ft)        # 写文字,中间对象,字体样式为ft
        dummy.sety(dummy.ycor() + 1)

    dummy2.clear()
    dummy2.write(寓义,align='center',font=ft2)
    dummy2.bk(1)
    if dummy2.xcor()<-1200:dummy2.goto(1600,-200)
    counter += 1
    if counter ==1000:
        dummy3.write(string,align='center',font=ft3)

    sleep(0.01)
        


需要源代码,程序说明文档,及所有素材,请扫码付款下载:

VIP免费查看

已有0人支付

本站所有作品,教程等皆为原创,版权所有。只供个人及单位内部研究使用,对外展示或传播必需经本站同意,且注明来自本站。培训机构等用本站资源培训学生,需经本站授权。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。入住QQ群:225792826 和爱好者共同交流,并且能下载免费提供的Python资源(需提供真实姓名才可入群)
李兴球的博客_Python创意编程技术前沿_pygame » Python寓义动画_豹的速度_一往无前

李兴球Python微信公众号文章列表

Python游戏海龟模块教程说明书与案例若干免费发放

爱的纪念_Python创意情景动画源代码解析

少儿Python编程到底学些什么?这些代码或许回答了问题.

Python编程家长会花絮_萍乡中小学Python家长会现场

火星路上等着你_少儿从小学什么最好呢?

国家大力整顿教育培训机构,Scratch或Python少儿编程还有得教吗?

鸿蒙系统支持Python开发_可视化编程特别兴趣小组

Scratch作品转Python作品_小猴接桃

python海龟数据可视化。第七次全国人口普查历年数据图表

你的孩子Python编程学到哪个阶段了?给孩子报编程的家长,务必仔细一读。

五一神女来对话,看看她们聊什么?赠Python教案等。

五一快乐有大礼,告诉大家我是如何上Python课的。

Python名堂多,趣味到处有,劈开机械手,帧帧是图片。速算达人之猫狮大战正在进行。 逐字动画不独享,自动生成皆有它。2行代码自动生成字幕gif动画。 Python之潮来临,我在安源区教师科技创新能力的Python讲座

小心你的Python程序,它会是你的一面镜子。小方块闯迷宫.py源代码简析。送Scratch算法集。?

铃儿响钉铛_音效怎能忘_Python配音之Pygame混音器

人面桃花相映红_winsound模块简介

《Python昨晚我想你了》_开源的游戏海龟模块实例案例浅析

《八猫联动初体验》_来自游戏海龟模块的问候

喜爱春天的人儿啊 心地纯洁的人_Python逐行像素显示

旋转之三叶炫彩扇_蟒蛇与海龟的表演

彩虹欢迎字幕_三模合体滚图形

《Python海龟宝典》简介

100%错误的算法还在用,明明没有错别字,说我有11个错别字

奇怪的Python代码,谁能帮我解释一下??

人造地球系统让人类文明充满整个宇宙之Python32768版

深夜,是什么把你的大脑搞成一团浆糊!再谈少儿编程!

5线城市萍乡的少儿Python寒假班学的是什么内容?

关于纯少儿编程课程进化的自然选择

Python海龟画图经典作品_国庆中秋双重喜庆源代码免费下载

海龟为什么要自杀!turtle制作游戏秘籍之一

朋友,你是否知道我在仰望着你_Python神笔马良案例集

酷酷的爆炸效果_Python海龟画图不仅仅是画图

虫子满屏爬_三bug多线程示例程序浅析 少儿Python视频课程A级简介

给的gif图片加文字水印_拆帧与合帧(免费下载180个Python创意源码

用Python制作酷炫图形之如意金箍棒_颜色增加模块应用

简单的用Python做酷炫图形与动画

sb3转exe,sb3素材提取器,编程小子apk, 未公开的pygame游戏集/scratch/python少儿编程免费下载集合

夜幕下的霓虹

学本领,探索更大的世界!

李兴球博客 风火轮编程主页