python pygame blit-混合像素-添加黑色矩形

python pygame blit-混合像素-添加黑色矩形,python,pygame,blit,pygame-surface,Python,Pygame,Blit,Pygame Surface,在编写国际象棋引擎时,我使用blit在棋盘上绘制棋子。 问题是它看起来很糟糕,创建了一个黑色矩形并添加到 作品的图标。看起来是这样的: 但我希望它看起来像这样: 这是代码,前两行是一件的示例, 其余部分(“for”)用于绘制所有这些内容: white_queen = pygame.image.load(os.path.join("images","wQn.png")).convert() self.icons['wQ'] = pygame.transform.scale(wh

在编写国际象棋引擎时,我使用blit在棋盘上绘制棋子。 问题是它看起来很糟糕,创建了一个黑色矩形并添加到 作品的图标。看起来是这样的:

但我希望它看起来像这样:

这是代码,前两行是一件的示例, 其余部分(“for”)用于绘制所有这些内容:

    white_queen = pygame.image.load(os.path.join("images","wQn.png")).convert()
    self.icons['wQ'] = pygame.transform.scale(white_queen, (self.square_size,self.square_size))

    for r in range(boardSize):
        for c in range(boardSize):
            print "r is " + str(r) + ", and c is " + str(c)
            (screenX,screenY) = self.ConvertToScreenCoords((r,c))
            piece_name = board[r][c]
            print "screen x is " + str(screenX) + ", and y is " + str(screenY)
            print "name is " + piece_name
            if piece_name != 'e':
                self.screen.blit(self.icons[piece_name],(screenX,screenY), special_flags = BLEND_RGBA_MULT)

    pygame.display.flip()
我想我在调用blit或调用另一个函数时缺少了一些参数


谢谢您的帮助。

这是您的图像的问题。去编辑它们中的每一个,将所有不需要的区域转换成透明区域,然后运行代码。为什么要使用:
special\u flags=BLEND\u RGBA\u MULT
?另外,我建议您使用
pygame.transform.smoothscale()
而不是
scale()
。图像中没有问题,它们在所有不需要的区域都是透明的。而且-我使用此标志是因为与其他选项相比,它给出了最佳结果。我怀疑@ssank124是正确的,您可能会感到困惑,因为无论您使用什么程序来查看它们,背景都是完全黑色的。确保您使用的程序区分黑色背景和透明度。