gpt4 book ai didi

python - 透明的 spritesheet 有黑色背景

转载 作者:太空宇宙 更新时间:2023-11-04 00:23:56 26 4
gpt4 key购买 nike

我正在使用 Python 和 Pygame 开发游戏。我为其中一个敌人创建了一个 sprite 表,并让它运行了我的代码。问题是图像看起来有黑色背景,即使它是透明图像。它的代码是这样的:

    enemySheet = pygame.image.load("resources/Alien.png").convert_alpha()
transColor = (255,255,255)
cells = []
for n in range(3):
width, height=(36,32)
rect = pygame.Rect(n * width, 0, width, height)
image = pygame.Surface(rect.size).convert_alpha()
image.blit(enemySheet, (0,0), rect)
cells.append(image)

enemyImg = cells[0]
enemyImg.set_colorkey(transColor)
enemy = enemyImg.get_rect()
enemy.center = (216,216)

我已经尝试了一些方法,但没有任何效果。欢迎任何想法。

最佳答案

新表面默认填充黑色。如果你想让它透明,你可以将第四个数字添加到 transColor(alpha 值),然后填充 image

transColor = (255,255,255,0)

# In the for loop.
image = pygame.Surface(rect.size).convert_alpha()
image.fill(transColor)

或者只传递 pygame.SRCALPHA 标志:

image = pygame.Surface(rect.size, pygame.SRCALPHA)

更好的解决方案是使用 pygame.Surface.subsurface切割纸张:

for n in range(3):
width, height = (36, 32)
rect = pygame.Rect(n * width, 0, width, height)
image = enemySheet.subsurface(rect)
cells.append(image)

关于python - 透明的 spritesheet 有黑色背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48119295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com