【发布时间】: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