我想绘制20个矩形(用于我的打砖块游戏),并且在列表中有它们。但是当我运行它时,它给了我一个索引错误。
dsize
我认为我将范围设置为20,我有20个矩形。我对python还是很陌生,所以我不知道怎么了。错误消息是; IndexError:索引超出范围:4
(我正在使用处理3.5.3)
答案 0 :(得分:1)
allRectInfo
是20个子列表的列表,每个子列表包含4个值。
因此,您最多只能访问allRectInfo[19][3]
。
除此之外还有一些常识:
顾名思义,rect
很可能是一个带有4个参数的函数。
您正在使用20(!!!)参数调用它,这应该会响起警钟...
答案 1 :(得分:1)
allRectInfo
中的每个列表元素仅包含4个元素
在循环中,您尝试访问第四个元素之后不存在的元素。
除了这个问题,为什么还要传递20个元素? 我认为您想要做的就是通过这种方式将值传递给rect函数
rect (allRectInfo[i][0], allRectInfo[i][1], allRectInfo[i][2], allRectInfo[i][3], allRectInfo[i][4])
答案 2 :(得分:0)
allRectInfo
包含20个列表。这些子列表中的每个子列表的长度都只有4,这意味着索引3是最大可访问索引。这就是为什么在索引4处出现错误的原因。
您可能打算使用allRectInfo[0][i]
这可能是您想要的:
for i in range(numRects):
for x in range(20):
rect(allRectInfo[x][i])