您可能遇到的另一个问题(除了猴子说的话)是您可能需要使用
surface.convert()它将图像转换为可以更改Alpha的形式。您可以执行以下任一 *** 作。
image = pygame.image.load("logo.png")image = image.convert()
要么
image = pygame.image.load("logo.png").convert()
我发现,尽管
surface.convert_alpha()应该做几乎相同的事情,但通常不起作用。尝试此测试代码进行检查。
import pygame, syspygame.init()window=pygame.display.set_mode((1500, 800))background=pygame.Surface((window.get_rect().width, window.get_rect().height))background.fill((0, 0, 0))image=pygame.image.load('InsertImageHere.png')image=image.convert()image2=pygame.image.load('InsertImage2Here.png')image2=image2.convert_alpha()rect=image.get_rect()rect2=image2.get_rect()rect2.left=rect.width+1i=1while True: for event in pygame.event.get(): if event.type==12: pygame.quit() sys.exit() image.set_alpha(i) image2.set_alpha(i) window.fill((255, 255, 255)) window.blit(background, background.get_rect()) window.blit(image, rect) window.blit(image2, rect2) pygame.time.delay(20) i+=1 if i==255: i=1 pygame.display.update()
在我的测试中,图像1逐渐消失,但是图像2一直保持黑暗。您应该自己尝试一下;您的计算机可能工作方式不同。
如果
surface.convert_alpha()对您有用,则应使用它,否则,请按照我之前说的做。这应该可以解决您的问题。
您还应该注意,我使用的
pygame.time.delay(20)不是以前的2000。如果要增加1的alpha值,则2000会有点太长。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)