我在python龟中的onkeypress无法正常工作

问题描述

因此,我在pycharm中进行了一些非常基础的工作,而我的onkeypress无法正常工作。我的意思是,当我按w,s,向上或向下时,什么也没发生。

代码如下:

# Functions
def paddle_a_up():
 y = paddle_a.ycor()
 y += 20
 paddle_a.sety(y)

def paddle_a_down():
 y = paddle_a.ycor()
 y -= 20
 paddle_a.sety(y)

def paddle_b_up():
 y = paddle_b.ycor()
 y += 20
 paddle_b.sety(y)

def paddle_b_down():
 y = paddle_b.ycor()
 y -= 20
 paddle_b.sety(y)

# Keyboard binding
wn.listen()
wn.onkeypress(paddle_a_up(),"w")
wn.onkeypress(paddle_a_down(),"s")
wn.onkeypress(paddle_b_up(),"Up")
wn.onkeypress(paddle_b_down(),"Down")

提前谢谢

解决方法

这是乌龟事件常见的初学者错误。在这些通话中:

wn.onkeypress(paddle_a_up(),"w")
wn.onkeypress(paddle_a_down(),"s")
wn.onkeypress(paddle_b_up(),"Up")
wn.onkeypress(paddle_b_down(),"Down")

当事件发生时,您应该传递函数名称以调用以后,而不是自己调用它们。应该是:

wn.onkeypress(paddle_a_up,"w")
wn.onkeypress(paddle_a_down,"s")
wn.onkeypress(paddle_b_up,"Up")
wn.onkeypress(paddle_b_down,"Down")