人类历史长河或许很长很长,但是相对于宇宙,我们仍旧非常渺小。虽然每个人的一生只是一瞬间。但是,我们要像豹子一样,勇往无前。
大家好,我是某某某。这是我用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)
需要源代码,程序说明文档,及所有素材,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)
发表评论