我正在尝试为pygame项目加载多个png文件,并将它们作为数组从函数返回。问题是当我尝试使用函数时,出现错误消息,因为未设置视频模式,无法执行.convert_alpha()方法。
我对pygame不太熟悉,所以我什至不知道我在做什么是否是正确的语法,但是任何帮助将不胜感激。
def loadTextures():
UpEarl = pygame.image.load("UpFacingEarl.png")
LeftEarl=pygame.image.load("LeftFacingEarl.png")
RightEarl=pygame.image.load("RightFacingEarl.png")
DownEarl=pygame.image.load("DownFacingEarl.png")
Texturelist=[UpEarl,LeftEarl,RightEarl,DownEarl]
NewTextureList=[]
for item in Texturelist:
item = pygame.transform.scale(item, (65,64))
item=item.convert_alpha()
NewTextureList.append(item)
return NewTextureList
答案 0 :(得分:0)
请参阅pygame.Surface.convert_alpha()
的文档:
更改包含每个像素alpha的图像的像素格式
convert_alpha(Surface) -> Surface convert_alpha() -> Surface
使用所需的像素格式创建表面的新副本。新的表面将采用适合于每个像素alpha迅速绘制为给定格式的格式。 如果未提供任何表面,则将优化新表面以使其闪烁显示到当前显示。
这是您收到错误消息的原因:
pygame无法确定合适的格式,因为pygame.error:未设置视频模式
pygame.display
未初始化。
您必须先致电pygame.display.set_mode()
,然后才能使用.convert_alpha()
,例如:
pygame.init()
screen = pygame.display.set_mode((800, 600))