pygame.Surface 变成 NoneType
pygame.Surface turning into NoneType
我有一个名为 engine.py
的 python 文件。我有一个特定的功能,我将加入其中,因为我知道该功能可以正常工作:
def set_image(self,path : str,spritesheet=None) -> pygame.Surface:
if (path is not None) and (spritesheet is None): # if path is provided but spritesheet is not
try:
self.image = pygame.image.load(path)
print(type(self.image))
self.rect = self.image.get_rect()
except FileNotFoundError as e:
raise e
但是当我尝试 blit()
函数的图像结果时,我得到 TypeError
说明 pygame.Surface
必须是第一个参数,而不是 None
。我做了一些测试,发现 engine.py
中的函数工作得很好,而且它确实正确地设置了 self.image
。但是程序没有它的self.image
到pygame.Surface
对象。
这里是声明玩家对象并设置 player.image
的地方:
player = Engine.Player()
player.image = player.set_image('screensaver/blue_car.png',)
这里是我尝试 blit()
它到我的显示表面的地方(出现错误的行):
display.blit(player.image, (0,0))
set_image
是一种方法。该方法不会 return 图像,但会设置对象的 image
和 rect
属性。因此:
player.image = player.set_image('screensaver/blue_car.png',)
player.set_image('screensaver/blue_car.png')
我有一个名为 engine.py
的 python 文件。我有一个特定的功能,我将加入其中,因为我知道该功能可以正常工作:
def set_image(self,path : str,spritesheet=None) -> pygame.Surface:
if (path is not None) and (spritesheet is None): # if path is provided but spritesheet is not
try:
self.image = pygame.image.load(path)
print(type(self.image))
self.rect = self.image.get_rect()
except FileNotFoundError as e:
raise e
但是当我尝试 blit()
函数的图像结果时,我得到 TypeError
说明 pygame.Surface
必须是第一个参数,而不是 None
。我做了一些测试,发现 engine.py
中的函数工作得很好,而且它确实正确地设置了 self.image
。但是程序没有它的self.image
到pygame.Surface
对象。
这里是声明玩家对象并设置 player.image
的地方:
player = Engine.Player()
player.image = player.set_image('screensaver/blue_car.png',)
这里是我尝试 blit()
它到我的显示表面的地方(出现错误的行):
display.blit(player.image, (0,0))
set_image
是一种方法。该方法不会 return 图像,但会设置对象的 image
和 rect
属性。因此:
player.image = player.set_image('screensaver/blue_car.png',)
player.set_image('screensaver/blue_car.png')