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