猫史档案馆


【Python作品分享】【36强进10】-探索

用户:好奇的阿米巴C_7a好奇的阿米巴C_7a查看:0 回复:0 评论:0 创建时间:2021-05-23T15:55:15


【作品展示】

center_image

 

【作品介绍】

本作品在原来基础上修改成了两夜的明信片,第一页是以文字形式表达对航天人们的致敬和火箭升空各时间段与成员的记录。中间停顿5秒后出现弹幕,接着来到第二页,则是航天器在太空的情景,可以操控星星数量和航天器移动一次,最后会弹出再次对航天人的致敬,前后照应。每一页明信片的左下↙和右下↘角标有页码。

如有不足请多指教,谢谢。

 

【作品源代码】

#初始工作
import random
import turtle
import time
p = turtle.Pen()
p.speed(0)
#明信片1
def postcard():
    turtle.screensize(800, 780, "light blue")
    p.pencolor('white')
    p.penup()
    g = '丨'
    a = '致'
    b = '敬'
    d = '太'
    e = '空'
    f = '人'
    h = '丨'
    for c in range(7):
        p.goto(350, 250-100*c)
        if c == 0:
            p.write(g, font=('Arial', 70))
        elif c == 1:
            p.write(a, font=('楷体', 70))
        elif c == 2:
            p.write(b, font=('楷体', 70))
        elif c == 3:
            p.write(d, font=('楷体', 70))
        elif c == 4:
            p.write(e, font=('楷体', 70))
        elif c == 5:
            p.write(f, font=('楷体', 70))
        else:
            p.write(h, font=('Arial', 70))
    p.pencolor('light blue')
    p.fillcolor('yellow')
    p.goto(190, 270)
    p.begin_fill()
    for i in range(4):
        p.circle(90, 90)
        p.right(180)
    p.end_fill()

    p.pencolor('black')
    q = '2003年10月15日09时00分——杨利伟'
    w = '2005年10月12日09时00分——费俊龙、聂海胜'
    r = '2008年09月25日21时10分——翟志刚、刘伯明、景海鹏'
    t = '2012年06月16日18时37分——景海鹏、刘旺、刘洋'
    y = '2013年06月11日17时38分——聂海胜、张晓光、王亚平'
    u = '2016年10月17日07时30分——景海鹏、陈冬'
    for o in range(6):
        p.goto(-350, 300-100*o)
        if o == 0:
            p.write(q, font=('Arial', 20))
        elif o == 1:
            p.write(w, font=('Arial', 20))
        elif o == 2:
            p.write(r, font=('Arial', 20))
        elif o == 3:
            p.write(t, font=('Arial', 20))
        elif o == 4:
            p.write(y, font=('Arial', 20))
        else:
            p.write(u, font=('Arial', 20))
    p.pencolor('red')
    p.goto(-300, -300)
    p.write('让我们跟着飞船一起探索太空吧!', font=('Arial', 30))
    p.pencolor('black')
    p.goto(-400, -370)
    p.write('①', font=('Arial', 30))
postcard()
time.sleep(5)
#弹幕
p.pencolor('red')
p.penup()
p.goto(500, 0)
for v in range(300):
    p.write('欢迎来到神秘的太空!', font=('Arial', 50))
    p.backward(5)
    p.clear()
#画布
turtle.screensize(800, 780, "black")
#明信片2
#星
#星——位置、颜色、大小
def star(x, y, color, z):
    p.pencolor('black')
    p.penup()
    p.goto(x, y)
    p.pendown()
    p.fillcolor(color)
    p.begin_fill()
    a = z
    for i in range(4):
        p.circle(a, 90)
        p.right(180)
    p.end_fill()
#星——颜色表
colors = ['yellow', 'blue', 'orange', 'white']
#月球
#大月球
def moon_1():
    p.penup()
    p.goto(-520, -100)
    p.pendown()
    p.fillcolor('light gray')
    p.begin_fill()
    p.circle(-300, 90)
    for k in range(2):
        p.right(90)
        p.fd(300)
    p.end_fill()
#月球洞
def moon_2(x, y, z):
    p.penup()
    p.goto(x, y)
    p.pendown()
    p.circle(z)
    p.fillcolor('gray')
    p.begin_fill()
    p.circle(z-5)
    p.end_fill()
#整月球
def moon():
    p.pencolor('black')
    moon_1()
    moon_2(-250, -340, 50)
    moon_2(-340, -200, 70)
#航天器
def spaceship(x, y):
    p.pencolor('gray')
    p.pensize(5)
    p.penup()
    p.goto(x, y)
    p.pendown()
    p.setheading(270)
    p.fillcolor('yellow')
    p.begin_fill()
    p.forward(45)
    p.left(30)
    p.forward(120)
    p.setheading(90)
    p.forward(45)
    p.setheading(120)
    p.forward(120)
    p.end_fill()
    p.setheading(270)
    p.forward(45)
    p.left(30)
    p.forward(120)
    p.setheading(90)
    p.begin_fill()
    p.forward(45)
    p.setheading(30)
    p.forward(60)
    p.setheading(270)
    p.forward(45)
    p.right(60)
    p.forward(60)
    p.end_fill()
    p.right(180)
    p.forward(30)
    p.setheading(90)
    p.forward(22.5)
    p.setheading(270)
    p.forward(50)
    p.right(90)
    p.fillcolor('light gray')
    p.begin_fill()
    p.circle(10)
    p.end_fill()
    p.right(90)
    p.forward(50)
    p.setheading(300)
    p.forward(50)
    p.right(90)
    p.begin_fill()
    p.circle(10)
    p.end_fill()
    p.right(90)
    p.forward(50)
    p.setheading(330)
    p.forward(50)
    p.right(90)
    p.begin_fill()
    p.circle(10)
    p.end_fill()
    p.right(90)
    p.forward(50)
    p.setheading(90)
    p.penup()
    p.forward(22.5)
    p.setheading(120)
    p.forward(120)
    p.pendown()
    p.forward(35)
    p.right(90)
    p.begin_fill()
    p.circle(10)
    p.end_fill()
    p.fillcolor('yellow')
    p.penup()
    p.goto(x, y)
    p.pendown()
    p.begin_fill()
    p.setheading(30)
    for l in range(2):
        p.forward(60)
        p.right(90)
        p.forward(120)
        p.right(90)
    p.end_fill()
    p.right(90)
    p.forward(60)
    p.right(90)
    p.forward(30)
    p.fillcolor('light blue')
    p.begin_fill()
    p.right(90)
    p.forward(15)
    p.left(90)
    p.forward(90)
    p.left(90)
    p.forward(30)
    p.left(90)
    p.forward(90)
    p.left(90)
    p.forward(15)
    p.end_fill()
    p.right(90)
    p.forward(120)
    p.begin_fill()
    p.left(90)
    p.forward(15)
    p.right(90)
    p.forward(90)
    p.right(90)
    p.forward(30)
    p.right(90)
    p.forward(90)
    p.right(90)
    p.forward(15)
    p.end_fill()
#作画
n = int(turtle.numinput('星星数量', '请输入星星的数量:', 20))
for j in range(n):
    star(random.randint(-425, 425), random.randint(50, 370),
         colors[random.randint(0, 3)], random.randint(10, 20))
moon()
spaceship(170, -150)
n = turtle.numinput('航天器升高', '请输入升高高度:', 100)
m = turtle.numinput('航天器前进', '请输入前进数量:', 500)
p.pencolor('black')
p.goto(70, -50)
p.setheading(0)
p.fillcolor('black')
p.begin_fill()
for k in range(4):
    p.fd(300)
    p.right(90)
p.end_fill()
spaceship(125-m, -50+n)
#写字
p.pencolor('red')
p.penup()
p.goto(-125, -100)
p.write('去太空,趣编程!', font=('微软雅黑', 50))
p.goto(-125, -200)
p.write('向航天人致敬!', font=('微软雅黑', 50))

p.pencolor('white')
p.goto(400,-370)
p.write('②', font=('Arial', 30))

turtle.done()

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页