Hack: blit per-pixel alpha source onto dest with surface opacity.

def blit_alpha(dest, source, pos, opacity):
    """Hack: blit per-pixel alpha source onto dest with surface 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)