Image Pygame和Tilesets,遵循使用说明,但我得到;“非类型”;错误

Image Pygame和Tilesets,遵循使用说明,但我得到;“非类型”;错误,image,graphics,pygame,nonetype,Image,Graphics,Pygame,Nonetype,我的Python版本是3.2,Pygame版本是1.9.1 我遵循了此处说明的第一部分:,进行了一些调整以适应我自己的瓷砖集: 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

我的Python版本是3.2,Pygame版本是1.9.1

我遵循了此处说明的第一部分:,进行了一些调整以适应我自己的瓷砖集:

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
我在enumerate(表)的
行中得到了x的非类型错误:
*。我尝试了各种方法,甚至移动了tileset本身,并更改了文件类型。我也尝试过其他代码,比如range

我曾经尝试过加载图像,这只是我第一次尝试使用平铺集。平铺集有9个16x16平铺,其中有一些透明度(因此使用了
convert\u alpha()

那么,有人能说出我为什么在这里出现
NoneType
错误吗?这与图像有关吗? (注意,“适用于范围内的tileX”中有3个是因为它不接受教程中第四个设置的计算,所以我自己做了数学计算。)

  • 编辑:意外键入:
    用于x,范围(表)中的行:
    而不是
    用于x,枚举(表)中的行:
    用于说明

您没有发布完整的代码,或者犯了一个错误:上面的代码中没有x的
行,范围(表)
行。使用此特定代码,您似乎试图从
range
函数中提取两个变量,但它一次只返回一个值

您可能想在enumerate(表)中为x键入
。在这种情况下,当您调用
table=load_tileset('tableset.gif',16,16)
时,需要返回一个对象,因为除非明确告诉任何给定函数返回一个对象,否则它将返回
None
,这就是该行给您带来麻烦的原因,因为
None
type
Nonetype

下面是一个函数返回
None
然后返回字符串
的示例:

def thisFuncReturnsNone():
   pass

print 'what gets returned:', thisFuncReturnsNone()
>>> None

def thisFuncReturnsAString():
  return 'a returned string'

print 'what gets returned a second time:', thisFuncReturnsAString()
>>> a returned string

load\u tileset
不返回任何内容