如何在Python中实现文本速度系统?代码报错求助
问题解决:Processing键盘回调函数参数错误
错误原因
你碰到的TypeError是因为Processing库的keyPressed是系统自动调用的回调函数,调用时不会传递任何参数,但你给函数定义了XVel参数,导致参数数量不匹配。另外你修改XVel时没在函数内声明全局变量,实际修改的是局部变量,根本不会改变全局的XVel值。
修正代码
from processing import * Speed = 2 XVel = 0 def keyPressed(): global XVel print(keyboard.key) if keyboard.key == "a": XVel -= Speed elif keyboard.key == "d": XVel += Speed run()
核心修改说明
- 删掉
keyPressed函数的参数,符合Processing回调函数的定义规范 - 在函数内用
global XVel声明要操作的是全局变量,不然修改的只是局部变量 - 简化速度计算的写法,让代码更易读
run()不需要传参,Processing的启动函数不需要这个参数
内容的提问来源于stack exchange,提问作者JustNoob_
相关产品推荐
相关产品推荐

