您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在图片上使用pygame set_alpha()

如何在图片上使用pygame set_alpha()

您可能遇到的另一个问题(除了猴子说的话)是您可能需要使用surface.convert()它将图像转换为可以更改Alpha的形式。您可以执行以下任一操作。

image = pygame.image.load("logo.png")
image = image.convert()

要么

image = pygame.image.load("logo.png").convert()

我发现,尽管surface.convert_alpha()应该做几乎相同的事情,但通常不起作用。尝试此测试代码进行检查。

import pygame, sys
pygame.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+1
i=1
while 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会有点太长。

其他 2022/1/1 18:27:43 有465人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶