Image Pygame和Tilesets,遵循使用说明,但我得到;“非类型”;错误
我的Python版本是3.2,Pygame版本是1.9.1 我遵循了此处说明的第一部分:,进行了一些调整以适应我自己的瓷砖集: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
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,枚举(表)中的行:
行,范围(表)
行。使用此特定代码,您似乎试图从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
不返回任何内容