【问题标题】:Fading out (increasing transparency) Pygame Function Using set_alpha Not Working淡出(增加透明度)使用 set_alpha 的 Pygame 函数不工作
【发布时间】:2013-09-03 22:40:13
【问题描述】:

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

【问题讨论】:

  • 然后把它留在那里,因为它像个白痴一样不断地把它画在上面。:是的。您应该在 blittin self.colorfade 之前清除屏幕(填充或绘制背景图像)。

标签: pygame transparency


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-09-09
    • 2018-11-06
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 2019-09-19
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多