簡體   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