猫史档案馆


【Python作品分享】【36强进10】给航天人的一张“明星片”【作品秀】

用户:BKS乄MCproblemBKS乄MCproblem查看:0 回复:0 评论:0 创建时间:2021-05-23T19:02:30


【作品展示】

center_image

 

【作品介绍】

原创,灵感:天宫空间站

效果:绘制飞船、绘制航天英雄、交互明星片

运用:turtle库、time库

含有贴图请本地查看

 

【作品源代码】

from turtle import *
import time

#画笔
pen = Pen()
pen.speed(0)
pen.hideturtle()
letter = Pen()
letter.speed(0)
#背景
space = Screen()
space.title("点击鼠标切换下一个")
space.bgcolor('black')
space.setup(2000, 800)
space.tracer(0)

# 平滑移动函数


def moveto(x, y,pen=pen):

    pen.penup()
    pen.goto(x, y)
    pen.pendown()
# 长方形函数


def rectangle(width, height, pencolor="red", fillcolor="white", pensize=10):

    pen.pencolor(pencolor)
    pen.fillcolor(fillcolor)
    pen.pensize(pensize)
    pen.begin_fill()
    for i in [width, height, width, height]:
        pen.forward(i)
        pen.right(90)
    pen.end_fill()


if_post=False
# 切换背景
gn = 0
ogn = 0
name = None
text = None
recipient = None

def change_bg(x, y):
    global gn, ogn
    gn += 1
#写明星片函数
def card(name,text,recipient):
    if name and text and recipient:
        moveto(10,-130,letter)
        letter.pencolor("black")
        l="""{}:
            {}
            {}
    {}""".format(recipient,text," "*len(text)+name,time.strftime("%Y{y}%m{m}%d{d}").format(y="年",m="月",d="日"))
        letter.write(l,move=False, align="center", font=("华文宋体", 45, "normal"))
        moveto(0,-300,letter)
        letter.pencolor("blue")
        letter.write("点击鼠标发送",move=False, align="center", font=("华文宋体", 45, "italic"))
        return "返回"
#邮寄函数
where=0
def post():
    space.title('正在发送……')
    global where,if_post
    if_post=True
    while not(where =="火星基站" or where=="天宫空间站"):
        where=space.textinput("请输入收信地址","你要寄到火星基站还是“天宫”空间站?(输入“火星基站”或“天宫空间站”")
    
    space.clear()
    space.register_shape("E:\马奕涵\PY\py\明星片\邮政飞船.gif")
    pen.shape("E:\马奕涵\PY\py\明星片\邮政飞船.gif")
    if where == "火星基站":
        space.bgpic('E:\马奕涵\PY\py\明星片\火星.gif')
        moveto(0,0,letter)
        letter.dot(50,"orange")
    elif where == "天宫空间站":
        space.bgpic("E:\马奕涵\PY\py\明星片\天宫空间站.gif")
    moveto(-1000,-400)
    pen.showturtle()
    pen.speed(1)
    moveto(0,0)
    moveto(0,100,letter)
    letter.write("已经到达!",align="center",font=("华文楷体",50,'italic'))
    space.title("已经到达!")


def change_background(ground_number):
    global ogn,gn,if_post,name,text,recipient
    # 东方红一号
    if ground_number == 0:
        moveto(-750, -200)
        space.bgpic("E:\马奕涵\PY\py\明星片\东方红一号.gif")
        pen.pencolor("white")
        pen.write("""东方红一号(代号:DFH-1),是20世纪70年代初中国发射的第一颗人造地球卫星。

东方红一号卫星于1958年提出预研计划,1965年正式开始研制,于1970年4月24日在酒泉卫星发射中心成功发射。

东方红一号卫星重173千克,由长征一号运载火箭送入近地点441千米、远地点2368千米、倾角68.44度的椭圆轨道。

卫星进行了轨道测控和《东方红》乐曲的播送。东方红一号卫星工作28天(设计寿命20天)。

卫星于5月14日停止发射信号。东方红一号卫星仍在空间轨道上运行。

东方红一号发射成功,开创了中国航天史的新纪元,

使中国成为继苏、美、法、日之后世界上第五个独立研制并发射人造地球卫星的国家

点击鼠标进行下一步""", align="left", font=("华文宋体", 13, "normal"))
    # 神舟五号
    elif ground_number == 1:
        if ogn != ground_number:
            space.clear()
            ogn = gn
        space.setup(2000, 800)
        moveto(-750, -249)
        space.bgcolor("black")
        space.bgpic("E:\马奕涵\PY\py\明星片\神舟五号.gif")
        pen.pencolor("white")
        pen.write("""神舟五号,简称“神五”,是中国载人航天工程发射的第五艘飞船,也是中华喵发射的第一艘载人航天飞船。

神舟五号飞船搭载航天员杨利伟于北京时间2003年10月15日9时整在酒泉卫星发射中心发射,

在轨运行14圈,历时21小时23分,

其返回舱于北京时间2003年10月16日6时23分返回内蒙古主着陆场,其轨道舱留轨运行半年。

神舟五号的成功发射实现了中华民族千年飞天的愿望,

是中华民族智慧和精神的高度凝聚,是中国航天事业在21世纪的一座新的里程碑。

点击鼠标进行下一步""", align="left", font=("华文宋体", 13, "normal"))
    #神舟九号
    elif ground_number == 2:
        if ogn != ground_number:
            space.clear()
            ogn = gn
        moveto(-750, -200)
        space.setup(2000, 800)
        space.bgpic("E:\马奕涵\PY\py\明星片\神舟九号火箭.gif")
        pen.pencolor("white")
        pen.write("""神舟九号,简称“神九”,为中国载人航天工程发射的第九艘飞船,

是中国的第四次载人航天飞行任务,也是中国首次载人交会对接任务。

神舟九号于2012年6月16日发射升空,进入预定轨道;

于2012年6月18日与天宫一号完成自动交会对接工作,建立刚性连接,形成组合体;

于2012年6月29日返回舱在内蒙古主着陆场安全着陆,完成与天宫一号载人交会对接任务。

神舟九号任务圆满成功标志着载人航天工程第二步任务取得了重大成果,

为今后的载人航天的发展、空间站的建设奠定了良好的基础。

点击鼠标进行下一步""", align="left", font=("华文宋体", 13, "normal"))
    #神舟十一号
    elif ground_number == 3:
        if ogn != ground_number:
            space.clear()
            ogn = gn
        moveto(-750, -300)
        space.setup(2000, 800)
        space.bgpic("E:\马奕涵\PY\py\明星片\神舟11号对接天宫二号.gif")
        pen.pencolor("white")
        pen.write("""神舟十一号,简称“神十一”,为中国载人航天工程发射的第十一艘飞船,

是中国第六次载人飞行任务,也是创造中国载人航天在轨飞行时间的新纪录的重要里程碑。

神舟十一号于2016年10月17日发射升空,进入预定轨道;















于2016年10月19日与天宫二号实现自动交会对接工作,形成组合体;

于2016年11月18日进入返回程序,返回舱降落住主着陆场,完成载人任务完成。

神舟十一号实现中国载人航天工程三步走中从第二步到第三步的过程,

为中国空间站建造运营和航天员长期驻留奠定了坚实的基础。

点击鼠标进行下一步""", align="left", font=("华文宋体", 13, "normal"))
    #英雄致敬
    elif ground_number==4:
        if ogn != ground_number:
            space.clear()
            ogn = gn
        space.title("向航天英雄致敬!")
        space.setup(2000, 800)
        space.bgpic("E:\马奕涵\PY\py\明星片\航天英雄.gif")
    #写明信片
    elif ground_number==5:
        if ogn != ground_number:
            space.clear()
            ogn = gn
        space.bgpic("E:\马奕涵\PY\py\明星片\神舟十一与天宫二号对接成功.gif")
        space.title("给航天人的一张“明星片”")
        while not name:
            name=space.textinput("请输入寄信人","你的名字(寄信人)?")
        while not recipient:
            recipient=space.textinput("请输入收信人","你要写给哪位航天英雄?")
        while not text:
            text=space.textinput("请输入你要写的话","你要对他/她说什么?(如果想输入换行,请输入‘/n’)")
        space.title("再点一次发送")
        space.bgpic("E:\马奕涵\PY\py\明星片\天宫.gif")
        if card(name,text,recipient)=="返回":
            moveto(0,-300)
            letter.pencolor("gold")
    #邮寄
    elif ground_number==6:
        if ogn != ground_number:
            space.clear()
            ogn = gn
        
        post()
            

while gn <= 6 and not if_post:
    space.onclick(change_bg)
    change_background(gn)

done()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页