IndexError:列表索引在pygame中超出范围

时间:2018-05-26 02:36:46

标签: python pygame

错误出现在下面代码段的最后一行,我不确定原因。我尝试从我在网上找到的视频中学习,该视频具有相同的代码,即使我已多次检查并且似乎工作正常。

class Snake:
    def __init__(self):
        self.position=[50,50]
        self.body=[[100,50], [90.50], [80,50]]
        self.direction = "RIGHT"
        self.changeDirectionTo=self.direction

    def getBody(self):
        return self.body

window=pygame.display.set_mode((500,500))
snake = Snake()

while True:
    for pos in snake.getBody():
        pygame.draw.rect(window, pygame.Color(0,225,0),
                         pygame.Rect(pos[0], pos[1], 10,10))

2 个答案:

答案 0 :(得分:0)

第二个身体部位有一个句号而不是逗号分隔90和50,所以pos [1]没有元素。只需用逗号替换句点即可。

答案 1 :(得分:0)

列表中有一个float元素而不是两个整数。将 [90.50] 更改为[90,50]。

self.body=[[100,50], [90.50], [80,50]]