import turtle
import random
import time
screen = turtle.Screen()
screen.title("Turtle 跑酷小游戏")
screen.bgcolor("skyblue")
screen.setup(width=800, height=300)
screen.tracer(0)
ground = turtle.Turtle()
ground.hideturtle()
ground.penup()
ground.goto(-400, -100)
ground.pendown()
ground.forward(800)
player = turtle.Turtle()
player.shape("square")
player.color("black")
player.penup()
player.goto(-200, -80)
player.dy = 0
player.is_jumping = False
gravity = -0.5
jump_strength = 10
obstacles = []
def jump():
if not player.is_jumping:
player.dy = jump_strength
player.is_jumping = True
screen.listen()
screen.onkey(jump, "space")
def is_collision(t1, t2):
return abs(t1.xcor() - t2.xcor()) < 20 and abs(t1.ycor() - t2.ycor()) < 20
game_over = False
last_spawn_time = time.time()
while not game_over:
player.dy += gravity
new_y = player.ycor() + player.dy
if new_y < -80:
new_y = -80
player.dy = 0
player.is_jumping = False
player.sety(new_y)
if time.time() - last_spawn_time > 1.2:
obstacle = turtle.Turtle()
obstacle.shape("square")
obstacle.color("red")
obstacle.penup()
obstacle.goto(400, -80)
obstacles.append(obstacle)
last_spawn_time = time.time()
for obstacle in obstacles:
obstacle.setx(obstacle.xcor() - 5)
if is_collision(player, obstacle):
game_over = True
break
screen.update()
time.sleep(0.02)
message = turtle.Turtle()
message.hideturtle()
message.penup()
message.goto(0, 0)
message.write("游戏结束!", align="center", font=("Arial", 24, "bold"))
screen.mainloop()