用户:Eason席查看:0 回复:0 评论:0 创建时间:2021-05-23T23:01:41
【作品展示】

【作品介绍】
用turtle制作的作品按下‘space’(空格)加速火箭一会
祝中国的航天事业更加辉煌
(此版本是删了一个BUG的版本,是最终的版本)
【作品源代码】
import turtle
from random import random, randint
import time
ms = turtle.Screen()
ms.listen()
w, h = 800, 600
ms.setup(w, h)
ms.title('给航天人的一张《明信片》')
ms.bgcolor("darkblue")
ms.delay(0)
cl=['yellow','white','gold','lightyellow','lemonchiffon']
t = turtle.Pen(visible=False, shape='circle')
stco = cl[randint(0, 4)]
t.pencolor(stco)
t.fillcolor(stco)
t.penup()
t.setheading(-10)
t.goto(w/2, randint(-h/2, h/2))
t1 = turtle.Pen(visible=False)
def one(b):
t1.pencolor('black')
t1.fillcolor('white')
t1.begin_fill()
for i in range(2):
t1.forward(b)
t1.left(120)
t1.forward(b)
t1.end_fill()
t1.left(30)
t1.begin_fill()
t1.forward(b*4)
t1.left(90)
t1.forward(b)
t1.left(90)
t1.forward(b*4)
t1.end_fill()
t1.backward(b)
t1.right(90)
t1.left(180)
def rocket(size):
t1.pendown()
t1.seth(-90)
t1.pencolor('black')
one(size)
t1.seth(-180)
t1.forward(size)
t1.seth(-90)
one(size/2)
t1.seth(-90)
t1.backward(size*2)
t1.seth(-0)
t1.forward(size*0.5)
t1.left(90)
t1.seth(-90)
one(size/2)
t1.seth(-270)
t1.forward(size*0.5)
t1.penup()
stars = []
for i in range(75):
star = t.clone()
stco = cl[randint(0, 4)]
star.pencolor(stco)
star.fillcolor(stco)
s = random()/3
star.shapesize(s, s)
star.speed(int(s*10))
star.setx(w/2 + randint(1, w))
star.sety(randint(-h/2, h/2))
star.showturtle()
stars.append(star)
t2=turtle.Pen(visible=False)
def fire():
turtle.tracer(False)
cl1 = ['black', 'orange', 'red']
cl2 = ['yellow', 'orange', 'red']
sz1 = [10, 6, 3]
for i in range(3):
t2.pencolor(cl1[i])
t2.fillcolor(cl2[i])
t2.begin_fill()
t2.goto(-100, -12)
t2.seth(-90)
t2.fd(sz1[i])
t2.right(104.5)
t2.fd(sz1[i]*4)
t2.right(151)
t2.fd(sz1[i]*4)
t2.right(104.5)
t2.fd(sz1[i])
t2.end_fill()
def fire1():
turtle.tracer(False)
cl1 = ['black', 'orange', 'red']
cl2 = ['yellow', 'orange', 'red']
sz1 = [5, 3, 1.5]
for i in range(3):
t2.pencolor(cl1[i])
t2.fillcolor(cl2[i])
t2.begin_fill()
t2.goto(-100, 7)
t2.seth(-90)
t2.fd(sz1[i])
t2.right(104.5)
t2.fd(sz1[i]*4)
t2.right(151)
t2.fd(sz1[i]*4)
t2.right(104.5)
t2.fd(sz1[i])
t2.end_fill()
def fire2():
turtle.tracer(False)
cl1 = ['black', 'orange', 'red']
cl2 = ['yellow', 'orange', 'red']
sz1 = [5, 3, 1.5]
for i in range(3):
t2.pencolor(cl1[i])
t2.fillcolor(cl2[i])
t2.begin_fill()
t2.goto(-100, -30)
t2.seth(-90)
t2.fd(sz1[i])
t2.right(104.5)
t2.fd(sz1[i]*4)
t2.right(151)
t2.fd(sz1[i]*4)
t2.right(104.5)
t2.fd(sz1[i])
t2.end_fill()
key=0
times=0
def press():
global key
global times
key=1
times=time.time()
ms.onkey(press,'space')
s=0
newt=0
m1=turtle.Pen(visible=False)
m2=turtle.Pen(visible=False)
m1.pencolor('white')
m2.pencolor('white')
m1.penup()
m2.penup()
m1.goto(0,230)
m2.goto(0,200)
numm=1
num=1
while True:
turtle.tracer(False)
t2.goto(-10,-22)
t2.pencolor('red')
t2.write('CASC', align='right', font=('楷体', 15))
if num == 1:
m1.write('1970年4月24日', align="center", font=("楷体", 20, ))
m2.write('中国第1颗人造地球卫星东方红一号发射成功',align='center',font=('楷体',20))
if numm == 1:
tim = time.time()
numm = numm+1
if time.time()-tim >= 3:
num = num+1
m1.clear()
m2.clear()
elif num == 2:
m1.write('拉开了中国人探索宇宙奥秘、和平利用太空、造福人类都序幕',align="center", font=("楷体", 20, ))
m2.write('经过几代航天人的不懈努力', align='center', font=('楷体', 20))
if numm == 2:
tim = time.time()
numm = numm+1
if time.time()-tim >= 3:
num = num+1
m1.clear()
m2.clear()
elif num == 3:
m1.write('2003年10月15日', align="center", font=("楷体", 20, ))
m2.write('航天员杨利伟乘“神舟五号”飞船首次进入太空', align='center', font=('楷体', 20))
if numm == 3:
tim = time.time()
numm = numm+1
if time.time()-tim >= 3:
num = num+1
m1.clear()
m2.clear()
elif num == 4:
m1.write('实现了中华民族的千年飞天梦', align="center", font=("楷体", 20, ))
m2.write('此后,手持红旗漫步太空的翟志刚', align='center', font=('楷体', 20))
if numm ==4:
tim = time.time()
numm = numm+1
if time.time()-tim >= 3:
num = num+1
m1.clear()
m2.clear()
elif num == 5:
m1.write('巾帼不让须眉的刘洋', align="center", font=("楷体", 20, ))
m2.write('三次出征太空的景海鹏', align='center', font=('楷体', 20))
if numm == 5:
tim = time.time()
numm = numm+1
if time.time()-tim >= 3:
num = num+1
m1.clear()
m2.clear()
elif num == 6:
m1.write('让太空有了越来越多的中国身影', align="center", font=("楷体", 20, ))
m2.write('面对星辰大海', align='center', font=('楷体', 20))
if numm == 6:
tim = time.time()
numm = numm+1
if time.time()-tim >= 3:
num = num+1
m1.clear()
m2.clear()
elif num == 7:
m1.write('中国人永不停步', align="center", font=("楷体", 20, ))
m2.write('————《人民日报》', align='center', font=('楷体', 20))
if numm == 7:
tim = time.time()
numm = numm+1
if time.time()-tim >= 3:
num = num+1
m1.clear()
m2.clear()
else:
m2.pencolor('red')
m1.pencolor('red')
m2.goto(0,150)
m1.goto(0,200)
m2.write('祝中国的航天事业更加辉煌!',align='center',font=('楷体',45))
m1.write('向中国航天员致敬!', align='center', font=('楷体', 45))
time.sleep(1)
turtle.done()
if key == 1:
fire()
fire1()
fire2()
newt=time.time()-times
if newt >= 2.0:
key=0
t2.clear()
t1.clear()
t1.goto(0,0)
t1.seth(-90)
rocket(25)
turtle.tracer(True)
for star in stars:
if key==1:
star.setx(star.xcor() - 15 * star.speed())
else:
star.setx(star.xcor() - 3 * star.speed())
if star.xcor() < -w/2:
stco = cl[randint(0, 4)]
star.pencolor(stco)
star.fillcolor(stco)
star.hideturtle()
star.setx(w/2 + randint(1, w))
star.sety(randint(-h/2, h/2))
star.showturtle()
#————————————————————————————————————#
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn