我的Python版本是3.2,Pygame是1.9.1。Pygame和Tilesets,遵循使用说明,但我得到“noneType”错误
我遵循了这个网址的指示第一部分:http://wiki.sheep.art.pl/Tiled%20Map%20in%20PyGame,有一些调整,以适应自己的地形设置:
def load_tileset(filename, width, height):
image = pygame.image.load(filename).convert_alpha()
imageWidth, imageHeight = image.get_size()
tileSet = []
for tileX in range(0, 3):
line = []
tileSet.append(line)
for tileY in range(0, 3):
rect = (tileX*width, tileY*height, width, height)
line.append(image.subsurface(rect))
if __name__=='__main__':
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption('Tiled Background')
screen.fill((240, 240, 255))
table = load_tileset('tableset.gif', 16, 16)
for x, row in enumerate(table):
for y, tile in enumerate(row):
screen.blit(tile, (x*24, y*24))
pygame.display.flip()
while pygame.event.wait().type != pygame.locals.QUIT:
pass
我for x, row in enumerate(table):
得到Nonetype错误*。我已经尝试了各种各样的东西,甚至移动了tileset本身,并更改了文件类型。我还尝试了其他代码,如范围。
我已经设法加载过去的图像,这只是我第一次尝试使用瓷砖组。瓷砖组有9个16x16的瓷砖,并有一些透明度(因此convert_alpha()
)。
那么,谁能说为什么我在这里得到了NoneType
错误?这与图像有关吗? (注意,原因有3周的在“为tileX的范围”是,它不会接受在本教程中设定的第4计算,所以我只是做了数学自己。)
- 编辑:意外键入:
for x, row in range(table):
而不是for x, row in enumerate(table):
的描述。
'load_tileset'不返回任何东西 – ninMonkey 2012-07-31 07:03:41