我正在尝试制作一个游戏,该游戏在角色的中间有一个角色,在角色的前面有一个道路,以使角色在道路上前进并碰到一些物体。我想做的是在道路上形成一个循环,在该循环中显示车道不断下降,以使人感觉角色一直在前进。我放置了两条表示行车路线限制的外线,以及两条用于三个车道的内线。问题是我正在尝试使用while True
进行此循环,并为两个通道创建一个函数。但是,Python不允许传递给其他命令,并且即使在开始时仅显示一个车道,游戏也会卡住。我应该使用什么其他结构来使游戏继续进行?
import turtle
screen = turtle.Screen()
screen.tracer(False)
outer_lines = turtle.Turtle()
outer_lines.pensize(5)
outer_lines.speed(0)
outer_lines.up()
outer_lines.goto(-250,-300)
outer_lines.down()
outer_lines.goto(-50,300)
outer_lines.up()
outer_lines.goto(250,-300)
outer_lines.down()
outer_lines.goto(50,300)
#io is the LEFT LANE
xx = 37.7330777468525 #lane length x
io = turtle.Turtle()
io.hideturtle()
io.speed(0)
io.up()
io.left(83.628367368543) #angle of incline of lanes
io.pensize(2)
#ia is the RIGHT LANE
ia = turtle.Turtle()
ia.hideturtle()
ia.speed(0)
ia.up()
ia.left(180-83.628367368543)
ia.pensize(2)
def lane_animation(lane):
def draw_lane(lane):
for drawinglane in range(5):
lane.pensize(2)
lane.color("white")
lane.forward(xx)
lane.color("black")
lane.forward(xx*2)
def draw_lane2(lane):
for drawinglane in range(5):
lane.color("black")
lane.forward(xx*2)
lane.color("white")
lane.forward(xx)
if lane == io:
lanex = -83
elif lane == ia:
lanex = 83
while True:
lane.goto(lanex,-300)
lane.down()
#io.clear()
draw_lane(lane)
back.update()
lane.up()
lane.goto(lanex,-300)
lane.down()
#io.clear()
draw_lane2(lane)
back.update()
lane.up()
lane.goto(lanex,-300)
lane.down()
#io.clear()
lane.color("black")
lane.forward(xx)
draw_lane(lane)
back.update()
lane.up()
lane_animation(io)
lane_animation(ia)