我用菜单创建了一个蛇 Pygame,并且当我遇到错误时正在微调错误等IndexError:列表索引超出范围在我打开选项卡本身并将光标移到它上面后,错误实际上出现了我对它的实际含义有一个模糊的想法,但我对 python 和一般编码很陌生,所以如果有人能解释并展示解决方案,我将不胜感激,
1 回答
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
我在您的代码中看到,您selection[some_index]多次引用。如果您查看实际选择是什么,您会发现它是一个数组,其中包含一个矩形对象:
[<rect(200, 450, 400, 60)>]
这个矩形永远不会改变,所以我建议通过调用直接引用它
selection[0]
例如,这是给您错误的代码片段。
for i in range (length):
if selection[i].collidepoint((mx,my)): # check if x,y of mouse is in a button
num = i
hover = True
因为 selection 是一个包含一个永远不会改变的元素的数组,所以在 for 循环的第一次迭代后会出现 Index out of range 错误。也许这看起来很熟悉:
IndexError: list index out of range
你可以做些什么来解决这个问题是摆脱循环(因为它是不必要的 - 如果选择列表中只有一个矩形,你不应该循环遍历索引!)并在第 0 个索引处提取矩形。
if selection[0].collidepoint((mx,my)): # check if x,y of mouse is in a button
num = i
hover = True
这不是我在您的代码中遇到的唯一错误,但我相信这会对您有所帮助!
添加回答
举报
0/150
提交
取消