有没有办法在Python Turtle中运行布尔if语句



我正在编辑一个Turtle Pong模板,并意识到两个桨板不能同时移动,所以我试图通过设置它来修复这个错误,这样,当按下一个键时,一个布尔值被设置为true,并且在if语句中引用该布尔值,以在true时向上或向下移动。然而,每当我试图创建这个系统时,布尔值总是保持在声明的状态,所以我开始将其声明为False,无论我使用按键将其设置为True多少次,它都会被设置回False。我对此感到困惑,因为我试图在申报单下面印上一张照片,但这张照片根本没有出现,但这份虚假申报单似乎一次又一次地出现。我想知道是不是因为window.listen函数,但理论上打印也会运行。我只是感到困惑,所以任何帮助都将不胜感激,谢谢!这是相关代码。


import turtle
wn = turtle.Screen()
wn.title('Pong')
wn.bgcolor('black')
WIDTH, HEIGHT = 800, 600
wn.setup(width=WIDTH, height=HEIGHT)
wn.tracer(0)
# Paddle A
paddle_a = turtle.Turtle()
paddle_a.speed(0)
paddle_a.shape('square')
paddle_a.color('white')
paddle_a.penup()
paddle_a.goto(-WIDTH/2, 0)
paddle_a.shapesize(5, 1)
#THIS here is the bit where I'm stuck
paddle_a_up = False
print(paddle_a_up)

def move_paddle_a_up():
paddle_a_up = True
print("I cant understand you")
print(paddle_a_up)

def move_paddle_a_down():
print(paddle_a_up)

wn.onkeypress(move_paddle_a_up, 'w')
wn.onkeypress(move_paddle_a_down, 's')
wn.listen()

if paddle_a_up == True:
y = paddle_a.ycor()
y += 20
paddle_a.sety(y)
while True:
wn.update()

python中使用全局变量的方式与其他语言不同。要在方法内部使用全局变量,必须在方法内部将该变量声明为global,否则python会将其视为新的局部变量。

因此,要在方法中使用全局变量,您需要在方法中进行这些更改move_paddle_a_up

def move_paddle_a_up():
global paddle_a_up
paddle_a_up = True
print("I can understand you now")
print(paddle_a_up)

最新更新