2017-05-04 70 views
0

我正在使用pygame制作蛇游戏,并且我有两个变量xy,我试图定义它。我有以下:将非int对象置为“Int对象不可下载”

def drawSnake(snakeCoords): 
    for coord in snakeCoords: 
     x = coord["x"] * CellSize 
     y = coord['x'] * CellSize 
     snake_segmentRect = pygame.draw.rect(x, y, CellSize, CellSize) 
    pygame.draw.rect(displaysurf, green, snake_segmentRect) 
    snake_segmentInnerRect = pygame.Rect(x + 4, y + 4, CellSize - 8, CellSize - 8) 
    pygame.draw.rect(displaysurf, green, snake_segmentInnerRect) 

...并且得到错误:

line 175, in drawSnake 
x = coord['x'] * CellSize 
TypeError: 'int' object is not subscriptable 

请帮帮忙,其他类似的问题是没有帮助的。

+5

什么是'蛇协会'?当然,它会在你遍历它时返回'ints',然后尝试索引这些:'coord ['x'] * CellSize',你期望*会发生什么?您需要提供一个*可重现的示例*,包括将重现该错误的代码以及所需的输出。 –

回答

1

看起来进入该函数的snakeCoords的值是一个整数列表。

把打印语句,以确保:

def drawSnake(snakeCoords): 
    for coord in snakeCoords: 
     print(type(coord)) 
     x = coord["x"] * CellSize 
     y = coord['x'] * CellSize 

你应该看到下面的输出python2:

<class 'int'>

或这python3:

<object 'int'>

这是导致y我们的错误。

+2

这会更好地作为评论:这是实际问题中需要的信息。 – brianpck

+0

是的,那是我得到的,是否有可能让它成为一个整数?这将符合我的代码的目的。 – Icedart

+0

@Icedart看起来你需要传入一个包含x和y键的字典对象列表(y键没有写在你的代码中)。如果所有想要的都是x和y坐标,那么使用元组可能会更好。你将不得不重写你的函数来处理它。 –