Python Tkinter贪吃蛇游戏方向切换失效问题求助
Python Tkinter贪吃蛇游戏方向切换失效问题求助
我看了你的代码,马上就发现了导致方向切换失效的关键问题,这是个新手很容易踩的小坑,一起来修正:
核心问题:赋值运算符用错了!
在你的change_direction函数里,你错误地使用了相等比较符号==来给全局变量direction赋值,但实际上应该用赋值符号=。==是用来判断两个值是否相等的,而我们需要的是把新方向赋值给direction变量,这就导致你的方向永远不会被更新,蛇自然不会改变移动方向。
修正后的change_direction函数
def change_direction(new_direction): global direction if new_direction == 'left': if direction != 'right': direction = new_direction # 把==改成= elif new_direction == 'right': if direction != 'left': direction = new_direction # 把==改成= elif new_direction == 'up': if direction != 'down': direction = new_direction # 把==改成= elif new_direction == 'down': if direction != 'up': direction = new_direction # 把==改成=
额外小提醒
还有个无关方向切换的小问题,你的碰撞检测函数名拼写错了:check_collilsions应该改成check_collisions(多了一个字母l),虽然现在不影响功能,但后续完善碰撞逻辑的时候容易出问题,建议顺手修正~
改完之后,你再运行程序试试,按下方向键蛇应该就能正常切换方向啦!
备注:内容来源于stack exchange,提问作者Subin
相关产品推荐
相关产品推荐

