人类历史长河或许很长很长,但是相对于宇宙,我们仍旧非常渺小。虽然每个人的一生只是一瞬间。但是,我们要像豹子一样,勇往无前。
大家好,我是某某某。这是我用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资源。)
