import turtle
import random
wn = turtle.Screen() #sets the screen
wn.setup(1000,900)
wn.screensize(2000,2000)
ad = turtle.Turtle() #names the turtle
ad.shape("circle") #changes turtles or "ad's" shape
ad.speed("fastest")
r = int(60) #CHANGES THE SIZE OF THE WRITING
x = int(-950)
y = int(200)
ad.penup()
ad.goto(x,y)
def enter():
ad.penup()
y -= 100
ad.goto(x,y)
wn.onkey(lambda: enter(), "Return")
wn.listen()
尝试在乌龟中进行输入按钮,但这不起作用。 它表示局部变量存在错误。
答案 0 :(得分:0)
虽然你的问题是你的global y
函数中缺少enter()
语句,但代码中有很多 noise 我们应该删除它以使其成为更好MVCE:
import random # not used so leave out of SO question example
r = int(60) # ditto
x = int(-950) # int() not needed for ints
y = int(200) # ditto
wn.onkey(lambda: enter(), "Return") # lambda not needed
虽然我们可以通过添加global y
语句来修复此问题,但我更喜欢简单地查询乌龟本身并避免全局:
from turtle import Turtle, Screen
def enter():
ad.sety(ad.ycor() - 100)
X, Y = -950, 200
wn = Screen()
wn.setup(1000, 1000) # visible field
wn.screensize(2000, 2000) # total field
ad = Turtle("circle")
ad.speed("fastest")
ad.penup()
ad.goto(X, Y)
wn.onkey(enter, "Return")
wn.listen()
wn.mainloop()
注意,您将乌龟放在屏幕的可见部分,因此您需要滚动到窗口的左侧以查看乌龟光标。一旦你这样做,你可以通过点击“返回”来移动它。