错误:描述符' blit'需要一个'pygame.Surface'对象但收到了一个' NoneType'

时间:2017-08-13 03:50:54

标签: python pygame

我正在创造一个游戏。我写了这段代码来创建一个sprite及其hitbox:

hg = pygame.image.load('hgrd1copy.jpg').set_colorkey(red)
hgbox = pygame.Rect(0 ,13 ,36 ,72)
pygame.Surface.blit(hg, hgbox)

我最初放

windowSurface.blit(hg, hgbox)

然后我收到一个错误,告诉我我的论证需要pygame.Surface而不是没有。

但是,当我将代码更改为pygame.Surface.blit时,它会给我这个错误代码: TypeError: descriptor 'blit' requires a 'pygame.Surface' object but received a 'NoneType' 我该怎么办?

1 个答案:

答案 0 :(得分:2)

如纪念中所述 - y9u必须在一行代码中加载您的图像,而在另一行中调用图像上的set_colorkey方法读取。而且,blit应该从现有表面调用作为方法 - 而不是Surface类。 (使用现在问题中的代码,程序如何" 将图像blit到哪个?

因此,假设您的屏幕位于您描述的windowSurface变量上,这应该有效:

hg = pygame.image.load('hgrd1copy.jpg')
hg.set_colorkey(red)
hgbox = pygame.Rect(0, 13, 36, 72)
windowSurface.blit(hg, hgbox)