code: def blit_alpha(dest, source, pos, opacity):
      
      # http://www.nerdparadise.com/tech/python/pygame/blitopacity/
      (x, y) = pos
      temp = pygame.Surface((source.get_width(),
                             source.get_height())).convert()
      temp.blit(dest, (-x, -y))
      temp.blit(source, (0, 0))
      temp.set_alpha(opacity)
      dest.blit(temp, pos)
docs: Hack: blit per-pixel alpha source onto dest with surface opacity.