gpt4 book ai didi

python - Pygame 使用 Sprite 表 : alpha problems

转载 作者:太空宇宙 更新时间:2023-11-03 14:18:34 25 4
gpt4 key购买 nike

我正在使用 Sprite 表来为我的播放器设置动画,动画效果很好,但当我在屏幕上传输动画的相应图像时没有 Alpha。

Class Animation:
def __init__(self, path, img_size):
self.images = pyagme.image.load(path).convert_alpha()
self.cur_img = 0
....

def get_image(self):
img=pygame.Surface((self.img_width,self.img_height)).convert_alpha()
rect = pygame.Rect((self.cur_img * self.img_width, 0),(self.img_width, self.img_height))
img.blit(self.images, (0, 0), rect)
return img

我正在使用 get_image 函数来绘制玩家:每次更新时:self.image = self.cur_anim.get_image()self 是 Player 类。

在我的函数draw中:self.screen.blit(self.player.image, self.player.rect)

最佳答案

Surface永远不会透明,所以你必须用 RGBA 填充它颜色有A=0使其透明。

img = pygame.Surface((self.img_width,self.img_height)).convert_alpha()

img.fill( (0,0,0,0) )

但是有pygame.Surface.subsurface它可以创建子图像(并且不使用新内存)

def get_image(self):
rect = pygame.Rect((self.cur_img * self.img_width, 0),(self.img_width, self.img_height))

return self.images.subsurface(rect)

顺便说一句:您可以在 __init__ 中创建所有子曲面稍后仅使用

def get_image(self):
return self.all_subsurfaces[self.cur_img]

关于python - Pygame 使用 Sprite 表 : alpha problems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48094789/

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