猫史档案馆


【Python作品分享】【去太空,趣编程】yyds(永远的神)!【作品秀】

用户:mornwindmornwind查看:0 回复:1 评论:0 创建时间:2021-04-28T20:03:00


【作品展示】

center_image

 

【作品介绍】

首先绘制月亮和 50 个星星,位于随机位置,在绘制一个火箭,从右下角飞到左上角,然后清屏。让火箭从屏幕飞过,消失后出现三行字

 

【作品源代码】

import turtle
import random
import time
t = turtle.Pen()
t.hideturtle()
t.speed(0)
s = turtle.Screen()
s.bgcolor("midnightblue")
s.tracer(0)


# 画笔移动


def moveto(x, y):
    t.penup()
    t.goto(x, y)
    t.pendown()


# 画月亮
t.penup()
t.goto(-200, 200)
t.pendown()
t.pencolor("lightyellow")
t.dot(100)
t.forward(30)
t.pencolor("midnightblue")
t.dot(100)

# 定义画星星的函数


def star(size, color):
    t.pencolor(color)
    t.begin_fill()
    t.fillcolor(color)
    for i in range(5):
        t.forward(size)
        t.left(72)
        t.forward(size)
        t.right(144)
    t.end_fill()


def dot(size, color):
    t.dot(size, color)


def choice():
    sizes = [3, 4, 5]
    size = random.choice(sizes)
    colors = ["orange", "yellow", "gold", "violet"]
    color = random.choice(colors)
    return size, color


def draw_star(x, y):
    size, color = choice()
    moveto(x, y)
    star(size, color)


def draw_dot(x, y):
    size, color = choice()
    moveto(x, y)
    dot(size, color)


def draw_sky():
    for i in range(50):
        x, y = random.randint(0, 350), random.randint(0, 350)
        if x < 175:
            x = -x*2
        if y < 175:
            y = -y*2
        if random.randint(1, 2) == 1:
            draw_dot(x, y)
        else:
            draw_star(x, y)


# 画火箭

turtlea = turtle.Pen()
def draw_(x, y):
    turtlea.setheading(0)
    turtlea.penup()
    turtlea.goto(x, y)
    turtlea.pendown()
    turtlea.begin_fill()
    turtlea.fillcolor('blue')
    turtlea.forward(20)
    for i in range(40):
        turtlea.forward(1)
        turtlea.left(2)
    turtlea.left(10)
    for i in range(5):
        turtlea.forward(15)
        turtlea.left(2)
    turtlea.goto(x, y+172)
    turtlea.penup()

    turtlea.goto(x, y)
    turtlea.pendown()
    turtlea.setheading(180)
    turtlea.forward(20)
    for i in range(40):
        turtlea.forward(1)
        turtlea.left(-2)
    turtlea.left(-10)
    for i in range(5):
        turtlea.forward(15)
        turtlea.left(-2)
    turtlea.goto(x, y+172)
    turtlea.end_fill()
    turtlea.pencolor("yellow")
    a = 1
    turtlea.setheading(270)
    for i in range(40):
        turtlea.pensize(a)
        turtlea.forward(1)

        a += 1
    turtlea.pencolor("red")
    turtlea.penup()
    turtlea.forward(40)
    turtlea.dot(35)

    turtlea.forward(40)
    turtlea.dot(20)
    turtlea.forward(25)
    turtlea.dot(20)
    turtlea.pensize(1)
    turtlea.goto(x+40, y)
    turtlea.pendown()
    turtlea.fillcolor("gold")
    turtlea.begin_fill()
    turtlea.left(45)
    turtlea.forward(30)
    turtlea.right(45)
    for i in range(180):
        turtlea.forward(0.3)
        turtlea.right(1)
    turtlea.right(180)
    for i in range(180):
        turtlea.forward(0.5)
        turtlea.right(1)
    turtlea.right(180)
    for i in range(210):
        turtlea.forward(0.3)
        turtlea.right(1)
    turtlea.goto(x-40, y)
    turtlea.end_fill()
    turtlea.left(1)


draw_sky()
x1, y1 = 200, -150
turtlea.hideturtle()
for i in range(0, 90):
    s.tracer(0)
    turtlea.clear()
    draw_(x1, y1)
    x1 -= 3
    y1 += 3
    s.tracer(1)
    time.sleep(0.01)
s.tracer(0)
turtlea.penup()
turtlea.goto(50, -250)
turtlea.pencolor("yellow")
turtlea.write('去\n 太\n  空\n   ,\n    趣\n     编\n      程', font = ('Arial', 60, 'normal'))
time.sleep(5)
turtlea.clear()
t.clear()
y=-200
for i in range(200):
    s.tracer(0)
    turtlea.clear()
    draw_(0, y)
    y += 4
    s.tracer(1)
    time.sleep(0.01)
turtlea.penup()
turtlea.goto(-100,-200)
turtlea.write("探索\n宇宙\n新世界", font = ('Arial', 100, 'normal'))

turtle.done()

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
火菊火菊

哇哦

点赞0


评论