Python贪吃蛇游戏中turtle的onkey方法无需按键就自动触发怎么办
问题原因
turtle库的onkey()方法要求传入的第一个参数是可调用的函数/方法对象,用于按键触发时执行。你代码里写的my_snake.turn_up()带了括号,会在代码运行到这一行时直接执行该方法,再把方法的返回值传给onkey(),所以会出现没有按下按键就触发转向逻辑的问题。如果turn_up()方法没有定义返回值,相当于给onkey()传了None,也无法实现后续的按键绑定效果。
修复方案
只需要删除绑定事件代码里方法名后的括号,直接传入方法本身即可,修改后的对应代码如下:
# 原错误代码 # my_screen.onkey(my_snake.turn_up(), 'Up') # 修改后代码 my_screen.onkey(my_snake.turn_up, 'Up')
如果需要绑定其他方向的按键,也要遵循同样的规则,示例如下:
- 下方向键:
my_screen.onkey(my_snake.turn_down, 'Down') - 左方向键:
my_screen.onkey(my_snake.turn_left, 'Left') - 右方向键:
my_screen.onkey(my_snake.turn_right, 'Right')
内容的提问来源于stack exchange,提问作者Jim
相关产品推荐
相关产品推荐

