[英]Up arrow key not working for python turtle
我已经为左右使用了onkey
function:
sc.onkey(user_left,"left")
sc.onkey(user_right,"right")
我在设置乌龟和导入乌龟后也设置了屏幕:
sc=Screen()
但是当我上下使用相同的格式时:
sc.onkey(user_up,"up")
sc.onkey(user_down,"down")
它什么也不做。 我也有我的功能:
def user_right:
t3.forward(5)
def user_left:
t3.backward(5)
t3 是我的用户乌龟,它是侧身的,形状是乌龟,它的头朝右。 t3 自动设置为在代码运行时使其头部朝向右侧。 顺便说一句,我from turtle import*
我在这里看到了几个问题。 首先,这不能像您声称的那样工作:
def user_right:
t3.forward(5)
def user_left:
t3.backward(5)
它需要是:
def user_right():
t3.forward(5)
def user_left():
t3.backward(5)
接下来,这在标准 Python 中的海龟中不起作用:
sc.onkey(user_left,"left")
sc.onkey(user_right,"right")
这些键必须是"Left"
和"Right"
。 你在使用非标准的海龟实现吗? (例如 repl.it 上的那个)您展示了两个可以工作的事件处理程序,但没有展示两个不起作用的事件处理程序,这在尝试调试代码时会更有趣。
最后,您错过了对屏幕的listen()
方法的调用,因此您的击键将被忽略。 以下是我可能如何实现您的代码暗示的功能:
from turtle import Screen, Turtle
def user_right():
turtle.forward(5)
def user_left():
turtle.backward(5)
def user_up():
turtle.sety(turtle.ycor() + 5)
def user_down():
turtle.sety(turtle.ycor() - 5)
turtle = Turtle()
turtle.shape('turtle')
screen = Screen()
screen.onkey(user_left, 'Left')
screen.onkey(user_right, 'Right')
screen.onkey(user_up, 'Up')
screen.onkey(user_down, 'Down')
screen.listen()
screen.mainloop()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.