繁体   English   中英

向上箭头键不适用于 python 龟

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM