import turtle
import time
import random
def up():
jerry.setheading(90)
jerry.forward(20)
def down():
jerry.setheading(270)
jerry.forward(20)
def left():
jerry.setheading(180)
jerry.forward(20)
def right():
jerry.setheading(0)
jerry.forward(20)
def play_game():
tom.goto(random.randint(-200, 200), random.randint(-200, 200))
jerry.goto(random.randint(-200, 200), random.randint(-200, 200))
start = time.time()
while True:
tom.setheading(tom.towards(jerry))
tom.forward(5)
if tom.distance(jerry) < 10:
end = time.time()
playground.clear()
jerry.goto(0, 0)
jerry.write("GAME OVER", align='center', font=("Comic Sans MS", 50, 'bold'))
jerry.goto(0, -50)
jerry.write("YOU SURVIVED {:.1f} SECONDS".format(end - start), align='center',
font=("Comic Sans MS", 20, 'bold'))
tom.pu()
tom.goto(-50, -70)
tom.stamp()
jerry.pu()
jerry.goto(50, -70)
jerry.stamp()
turtle.ontimer(play_game, 3000) # 3秒后重新开始游戏
break
playground = turtle.Screen()
playground.register_shape('tom.gif')
playground.register_shape('jerry.gif')
playground.onkey(up, 'Up')
playground.onkey(down, 'Down')
playground.onkey(left, 'Left') # 将playground.onkey(left, 'Left')移出left函数,只执行一次即可
playground.onkey(right, 'Right')
playground.listen()
writer = turtle.Turtle()
writer.color('brown')
writer.hideturtle()
writer.penup()
writer.home()
writer.write("TOM & JERRY", align='center', font=("Comic Sans MS", 50, 'bold'))
writer.goto(0, -50)
writer.write("READY? 3,2,1,GO!", align='center', font=("Comic Sans MS", 20, 'bold'))
turtle.ontimer(writer.clear, 3000) # 3秒后清除提示信息,开始游戏
turtle.ontimer(play_game, 3000) # 3秒后开始游戏
tom = turtle.Turtle()
tom.shape('tom.gif')
tom.penup()
tom.pendown()
tom.pensize(3)
tom.color('blue')
jerry = turtle.Turtle()
jerry.shape('jerry.gif')
jerry.speed(0)
jerry.penup()
jerry.color('brown')
turtle.mainloop() # 主循环,必须在最后执行