2013-12-21 55 views
3

我试图制作一个将矩形地图绘制到屏幕上的函数。此功能是:为Pygame中的矩形分配值时出错

def parseMap(mapIndex): 
    tileRect = pygame.Rect(0, 0, 32, 32) 
    for x in maps.mapData[mapIndex]: 
    tileRect.x = x*16 
    for y in x: 
     tileRect.y = y*16 
     c.blit(maps.grass, tileRect) 
     if maps.mapData[mapIndex][x][y] == 1: c.blit(maps.tallGrass, tileRect) 

虽然,我得到了一个错误,

TypeError: invalid rect assignment 

就行了:

tileRect.x = x*16 

,我看不出什么毛病的代码。谢谢!

+0

什么'x'? ('maps.mapData [...]'中有什么?)在下一行你遍历它('for y in x:'),它可能是一个列表吗? – Seth

+0

你确定你有一个错误,你的缩进是正确的吗?我运行相同的代码,没有错误。 – jobin

+0

@Seth maps.mapData是一个三维列表,其中[mapIndex]是地图,然后它具有坐标[x]和[y]。 – Aearnus

回答

1

如果x是一个列表,那么x * 16列出重复,而不是乘法。

即,你要像

tileRect.x = [1, 1, 1, 1, ...] 
+0

感动的评论回答。 – Seth