淡出(增加透明度)Pygame函数使用set_alpha不工作

时间:2013-09-03 22:40:13

标签: pygame transparency

我正在尝试创建一个淡化OUT(增加透明度)的函数,一个精灵覆盖,一个覆盖屏幕的大颜色块。但是,由于某种原因,只有淡入功能按预期工作。淡出功能立即以最大不透明度(255)绘制精灵覆盖,但尽管使用与淡入功能相同的算法,但不会显示所需的淡出效果,但具有不同的范围值,当然。

编辑:

好吧,我想我知道这笔交易。

淡出功能在背景上绘制叠加层......并将其留在那里,因为它会像傻瓜一样不断地将它覆盖在它上面。

我明白了。

我会玩这个玩具。

以下是两个功能:

这个有效:

def fade_in(self):

    self.FaderInUse.add(self)

    for x in range(0, 256, self.rate):
        self.colorfade.set_alpha(x)
        screen.blit( self.colorfade, ( 0, 0 ) )
        pygame.display.flip()
        clock.tick(15)

    self.FaderInUse.clear( screen, screen )
    DrawScreen()
然而,这个并没有完全削减它:

def fade_out(self):

    self.FaderInUse.add(self)

    for x in range( 255, -1, ( self.rate * -1 ) ):
        self.colorfade.set_alpha(x)
        screen.blit( self.colorfade, ( 0, 0 ) )
        pygame.display.flip()
        clock.tick(15)

    self.FaderInUse.clear( screen, screen )
    DrawScreen()

1 个答案:

答案 0 :(得分:0)

你能说明你是如何创建self.colorfade对象的。而且,你使用self.colorfade.convert_alpha()吗?您必须使用convert_alpha才能更改对象的Alpha值。