Python turtle开发乒乓球游戏报错:Turtle对象无onkeyrelease属性如何解决
问题修复方案
错误原因
onkeyrelease是turtle.Screen类的键盘事件方法,不属于Turtle实例对象,你尝试调用bar.onkeyrelease自然会报属性不存在的错误- 报错提示的
onrelease是Turtle对象绑定鼠标点击释放事件的方法,和你要实现的键盘按键释放功能不匹配,不需要用这个方法 - 额外还有个小问题:你定义的
r函数中调用bar.right()没有传入旋转角度参数,后续运行也会报错
修复步骤
- 替换绑定按键释放事件的调用主体为你创建的
background(Screen实例),绑定前必须调用listen()方法让窗口监听输入 - 给
bar.right()补充旋转角度参数,比如和左转保持一致设为50 - 程序末尾要加
background.mainloop()维持窗口运行,不然程序会直接退出
修正后的核心代码
#imports import random import turtle #turtle ball = turtle.Turtle() ball.shape("circle") ball.color("red") ball.goto(0, 0) ball.penup() background = turtle.Screen() background.bgcolor("turquoise") bar = turtle.Turtle() bar.shape("square") bar.shapesize(1, 5, 1) bar.penup() bar.speed(100000) bar.sety(-70) def l(): bar.left(50) def r(): bar.right(50) # 补充旋转角度参数 background.listen() # 让窗口监听按键事件 # 用Screen实例绑定按键释放事件 background.onkeyrelease(l, "Left") background.onkeyrelease(r, "Right") # 可按需补充右键绑定 background.mainloop() # 维持窗口运行
内容的提问来源于stack exchange,提问作者ItzMeNick
相关产品推荐
相关产品推荐

