猫史档案馆


【Python作品分享】【120强进36】去太空,趣编程——火箭发射,国旗升起【作品秀】

用户:活泼的重金怪gdte活泼的重金怪gdte查看:0 回复:0 评论:0 创建时间:2021-05-14T22:17:54


【作品展示】

center_image

 

【作品介绍】

先询问是否发射,如果发射,就可以观喵航天运载火箭升入美丽星空,国旗在太空中升起!

 

【作品源代码】

import turtle
import random

mypen = turtle.Pen()
mypen.speed(0)
myscreen = turtle.Screen()
myscreen.tracer(1)
myscreen.setup(800, 600)
start = False
sizess = []

def _goto(pos_x, pos_y):
    mypen.penup()
    mypen.goto(pos_x, pos_y)
    mypen.pendown()

def draw_circle(pos_x, pos_y, radius, pensize, color):
    mypen.pencolor(color)
    mypen.pensize(pensize)
    _goto(pos_x, pos_y)
    mypen.circle(radius)

def draw_rectangle(pos_x, pos_y, width, height, pensize, color):
    mypen.pencolor(color)
    mypen.pensize(pensize)
    _goto(pos_x, pos_y)
    for i in range(2):
        mypen.forward(width)
        mypen.left(90)
        mypen.forward(height)
        mypen.left(90)

def draw_filled_rectangle(pos_x, pos_y, width, height, pensize, color):
    mypen.pencolor(color)
    mypen.pensize(pensize)
    _goto(pos_x, pos_y)
    mypen.fillcolor(color)
    mypen.begin_fill()
    for i in range(2):
        mypen.forward(width)
        mypen.left(90)
        mypen.forward(height)
        mypen.left(90)
    mypen.end_fill()

def draw_filled_circle(pos_x, pos_y, radius, color):
    mypen.pencolor(color)
    _goto(pos_x, pos_y)
    mypen.dot(radius)

def write(pos_x, pos_y, writing, color, size):
    mypen.pencolor(color)
    mypen.penup()
    mypen.goto(pos_x, pos_y)
    mypen.pendown()
    mypen.write(writing, font=("文泉驿正黑", size))


def draw_filled_s_out(lenth, color):
    mypen.fillcolor(color)
    mypen.pencolor(color)
    mypen.begin_fill()
    mypen.right(60)
    mypen.forward(lenth)
    mypen.left(120)
    mypen.forward(lenth)
    mypen.left(120)
    mypen.forward(lenth)
    mypen.right(180)
    mypen.end_fill()

def draw_stars():
    pensize = 1
    mypen.pensize(pensize)
    for i in range(40):
        x = [66, 295, -156, -47, -145, 195, -17, -91, 31, 283, -4, 167, -152, 144, 107, 151, -186, -11, 84, 289,
             112, -61, 163, 154, 228, -16, 29, -27, -105, -153, 209, 128, 211, -251, 103, -207, 165, -169, 171, -16]
        y = [169, -141, -271, 257, 207, -118, 129, 8, -206, 15, 13, -76, -222, -265, -48, -175, 98, -167, 173,
             143, -93, 90, -喵, 68, 267, 192, 175, 94, -127, -36, 25, -259, 122, -107, -5, 68, -240, 2, -143, -191]
        mypen.penup()
        mypen.goto(x[i], y[i])
        mypen.pendown()
        sizes = [7, 5, 6, 8, 10]
        size = random.choice(sizes)
        colors = ["red", "orange", "yellow", "green"]
        color = random.choice(colors)
        mypen.pencolor(color)
        mypen.begin_fill()
        mypen.fillcolor(color)
        for j in range(5):
            mypen.forward(size)
            mypen.left(72)
            mypen.forward(size)
            mypen.right(144)
        mypen.end_fill()

def draw_time(pos_x,w,color):
    for i in range(20):
        write(pos_x, -330, w, color, 500)
    myscreen.clear()

def _draw_circle():
    for i in range(1):
        x = [-400]
        y = [-300]
        _goto(x[i],y[i])
        radius = 80
        draw_filled_circle(-400, -300, 400,"red")
        draw_filled_circle(260, 74, 200,"orange")
        draw_filled_circle(-130, 174, 125,"yellow",)
        draw_filled_circle(236, -101, 75,"green")

def draw_star(x,y,color,pensize,size):
    _goto(x, y)
    mypen.pensize(pensize)
    mypen.pencolor(color)
    mypen.begin_fill()
    mypen.fillcolor(color)
    for j in range(5):
        mypen.forward(size)
        mypen.left(72)
        mypen.forward(size)
        mypen.right(144)
    mypen.end_fill()

def draw_flag():
    _goto(0, 193)
    mypen.pencolor("gray")
    mypen.pensize(5)
    mypen.left(90)
    mypen.forward(90)
    mypen.backward(70)
    mypen.right(90)
    draw_filled_rectangle(0, 223, 80, 60, 5, "red")
    draw_star(5,273,"gold",1,6)
    draw_star(20,278,"gold",1,3)
    draw_star(25,268,"gold",1,3)
    draw_star(20,258,"gold",1,3)
    draw_star(10,253,"gold",1,3)

start = myscreen.textinput("是否发射", '''是否发射,"ok"为"是":''')
if start == "ok":
    draw_time(-330,10,"blue")
    for i in range(10):
        if 9-i > 3:
            color = "blue"
            draw_time(-165,9-i,color)
        else:
            color = "red"
            draw_time(-165,9-i,color)
    myscreen.bgcolor("midnightblue")
    myscreen.tracer(0)
    draw_stars()
    _draw_circle()
    myscreen.tracer(1)
    for i in range(90):
        myscreen.tracer(0)
        color = "midnightblue"
        draw_filled_rectangle(-20, -200+i, 40, 230, 5, "red")
        draw_filled_s_out(40, "orange")
        draw_filled_rectangle(-60, -200+i, 30, 100, 5, "red")
        draw_filled_s_out(30, "orange")
        draw_filled_circle(-45, -100+i, 35, "red")
        draw_filled_rectangle(30, -200+i, 30, 100, 5, "red")
        draw_filled_s_out(30, "orange")
        draw_filled_circle(45, -100+i, 35, "red")
        draw_filled_rectangle(-20, 30+i, 40, 50, 5, "blue")
        draw_filled_circle(0, 80+i, 45, "blue")
        draw_filled_circle(0, 5+i, 25, "skyblue")
        draw_filled_circle(0, -25+i, 25, "skyblue")
        write(-12, -185+i, "中\n国\n航\n天", "gold",20)
    draw_flag()
    myscreen.tracer(1)
else:
    start1 = myscreen.textinput("是否发射", '''现在是否发射,"ok"为"是":''')

turtle.done()

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页