Macos 在OS X上使用Pygame进行错误颜色的抗锯齿

Macos 在OS X上使用Pygame进行错误颜色的抗锯齿,macos,drawing,pygame,antialiasing,Macos,Drawing,Pygame,Antialiasing,我在运行OS X的Macbook Pro(非视网膜)上使用Pygame。当我试图创建一条抗锯齿线或圆时,它看起来是错误的颜色。下面是一个例子: import sys, pygame, random, math import pygame.gfxdraw black = (0,0,0) white = (255, 255, 255) green = (0, 255, 0) pygame.init() size = width, height = 800, 600 screen = pyg

我在运行OS X的Macbook Pro(非视网膜)上使用Pygame。当我试图创建一条抗锯齿线或圆时,它看起来是错误的颜色。下面是一个例子:

import sys, pygame, random, math
import pygame.gfxdraw

black = (0,0,0)
white = (255, 255, 255)
green = (0, 255, 0)


pygame.init()

size = width, height = 800, 600

screen = pygame.display.set_mode(size)

# make the background
background = pygame.Surface(screen.get_size())
#background.fill(black)
background.fill(white)

while 1:
    # handle single events
    for event in pygame.event.get():
        if event.type == pygame.QUIT: sys.exit()

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE: sys.exit()

    screen.blit(background, (0, 0))

    pygame.draw.line(screen, green, [0, 0], [50,30], 1)
    pygame.draw.aaline(screen, green, [0, 50],[50, 80], True)

    pygame.draw.circle(screen, black, [100, 100], 10)
    pygame.gfxdraw.aacircle(screen, 100, 130, 10, black)

    pygame.display.flip()
这导致:


尽管搜索了pygame源代码,但仍无法找到原因

不过我还是设法想出了一个解决办法。实际上是两个

pygame.gfxdraw
模块中似乎有一个bug,当蓝色的值为0时,它会导致OS X中的颜色混乱。如果将
黑色
更改为(0,0,1),圆圈看起来会更好,但仍然有轻微的蓝色。将其更改为(0,0,2),它将显示为几乎完全黑色。这对我来说没什么意义,但它确实有效

编辑:用于不包含任何蓝色的背景色。看起来,在包含>0蓝色的背景RGB上,圆圈至少需要该数量的蓝色来防止错误。例如,要获得(50,50,50)背景上的黑色圆圈,我能够获得的最接近的结果是使用(0,0,50)作为圆圈。任何较低数量的蓝色都会产生明亮的蓝色瑕疵

不过,添加蓝色无助于修复pygame.draw.aaline的行为。这一定是一个单独的错误。但是,
pygame.gfxdraw.line
也是抗锯齿的。改为使用该方法,将
绿色
更改为(0255,1),青色线现在将变为绿色


谢谢,这非常有帮助!