类属性无法访问pygame

时间:2016-10-29 13:28:19

标签: python pygame

以下块在用作类属性时会产生错误cannot convert without pygame.display initialized

class Tile:
    hidden_image = pygame.image.load('image0.bmp')
    hidden_image.convert()

但是,当我在类Tile的任何方法下使用它时,它都有效。即。

    def __init__(self, x, y, width, height, image):
        .....

    def draw(self):
        hidden_image = pygame.image.load('image0.bmp')
        hidden_image.convert()

有任何解释吗?

1 个答案:

答案 0 :(得分:2)

在运行pygame.init()之前,您必须运行pygame.screen.set_mode()或更确切地说hidden_image.convert(),因为convert()必须知道显示配置 - 即。颜色深度 - 正确转换图像。

因为它是class属性所以它在加载脚本时在开始时执行,所以你必须在类定义之前放置pygame.init()pygame.screen.set_mode()。或者您必须在convert()中使用__init__

draw()函数在pygame.screen.set_mode()之后执行,因此可以正常工作。

PyGame doc:pygame.Surface.convert