所以我试图写一个函数来生成一个曲面,它可以叠加我画的两个png,并且可以在其中一个上打洞,这样另一个就可以看出来了。在
我有一张宇宙飞船的外观图。 (自我起源)在
我还有一张同一艘飞船内部的图纸。 (self.baseImage)在
我还有一张损坏图。 (pygame.image.load('Damage1.png'))
损伤图是一个png,边缘是每像素的alpha透明度,中心是越来越不透明的黄色和橙色,中间是紫色。('#770777')
我们的想法是把损坏的物体直接打到飞船的外部。看起来就像有人朝一艘装满紫色的飞船开了一个洞。那部分很管用。然后我想为紫色设置一个颜色键,然后把整个东西都放在室内图纸上,这样你就可以看到里面的东西了,而不是紫色。在
这是我的尝试。每当受到新的伤害时,它就会运行,而且大部分都能工作,但是紫色不会转换。在
def generateImage(self):
self.buildImage = self.origImage.copy()
for x in range(len(self.objectSquares)):
for y in range(len(self.objectSquares[x])):
if self.objectSquares[x][y].health < 10:
self.buildImage.blit(pygame.image.load('Damage1.png'), ((x*10), (y*10)))
self.buildImage = self.buildImage.convert()
self.buildImage.set_colorkey(pygame.Color('#770777'))
self.compImage = pygame.Surface(self.buildImage.get_size()).convert()
self.compImage.blit(self.baseImage, (0, 0))
self.compImage.blit(self.buildImage, (0, 0))
我还试着从损伤图中抓取colorkey,以确保不是我的绘画程序压缩了图像或其他东西。在
^{pr2}$以及
self.buildImage.set_colorkey(pygame.image.load('Damage1.png').get_at((5, 5)))
以及其他各种组合。在
有人看到我做错什么了吗?谢谢你的帮助!在
来自文档:set_colorkey()
尝试使用
convert_alpha()
并在与颜色键匹配时手动将每像素值设置为alpha。在pygame.transform.threshold()可能会帮你做第二部分。在
相关问题 更多 >
编程相关推荐