2

我正在尝试制作一个淡出(增加透明度)精灵叠加层的功能,这是一个覆盖屏幕的大色块。但是,由于某种原因,只有淡入功能按预期工作。淡出函数立即在其最大不透明度 (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()
4

1 回答 1

0

你能展示一下你是如何创建 self.colorfade 对象的吗?而且,你用了self.colorfade.convert_alpha()吗?您必须使用 convert_alpha 才能更改对象的 alpha 值。

于 2014-09-10T05:04:04.280 回答