首页 > 解决方案 > IndexError: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))

标签: pythonpygame

解决方案


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

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

推荐阅读