【发布时间】:2019-08-14 11:12:06
【问题描述】:
我试图让我的海龟(main_ship)根据用户按下左右箭头键但海龟没有移动的时间在我的屏幕底部移动。我之前在制作 Pong 时使用过相同的代码,所以我不确定为什么它不起作用。
import turtle
wn = turtle.Screen()
wn.title("Game")
wn.bgcolor("black")
wn.setup(width=800, height=600)
wn.tracer(0)
main_ship = turtle.Turtle()
main_ship.speed(0)
main_ship.shape("turtle")
main_ship.color("green")
main_ship.shapesize(stretch_wid=2, stretch_len=4)
main_ship.penup()
main_ship.goto(0, -290)
main_ship.left(90)
def main_ship_right():
x = main_ship.xcor()
x += 20
main_ship.setx(x)
def main_ship_left():
x = main_ship.xcor()
x -= 20
main_ship.setx(x)
while True:
wn.update()
wn.mainloop()
wn.listen()
wn.onkeypress(main_ship_right, "Right")
wn.onkeypress(main_ship_left, "Left")
当我按下箭头键时,什么也没有发生,但代码仍在运行并且没有错误消息。
【问题讨论】:
-
你必须在 mainloop() 之前分配键。而且您不需要
while True,因为mainloop()一直运行到您关闭窗口为止。 -
并删除
wn.tracer(0),否则你将不得不在每个改变海龟位置的函数中使用wm.update()