Python 无法获取pygame.Surface.get_at()以正常工作

Python 无法获取pygame.Surface.get_at()以正常工作,python,pygame,draw,typeerror,surface,Python,Pygame,Draw,Typeerror,Surface,我正在尝试使用pygame检索我在显示器上绘制的颜色,但似乎无法使其正常工作。为了便于阅读,我取出了一些不相关的代码,但这里是我所拥有的 import pygame import sys from pygame.locals import * pygame.init() blue = (0,0,255) #sets up screen setDisplay = pygame.display.set_mode((400,400)) pygame.display.set_caption('Co

我正在尝试使用pygame检索我在显示器上绘制的颜色,但似乎无法使其正常工作。为了便于阅读,我取出了一些不相关的代码,但这里是我所拥有的

import pygame
import sys
from pygame.locals import *

pygame.init()

blue = (0,0,255)

#sets up screen
setDisplay = pygame.display.set_mode((400,400))
pygame.display.set_caption('Connections')

pygame.draw.circle(setDisplay, blue, (20,20), 10, 10)

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
    pygame.display.update()

    print pygame.setDisplay.get_at((20,20))
无论何时运行此代码,都会出现以下错误:

TypeError: descriptor 'get_at' requires a 'pygame.Surface' object but received a 'tuple'

SetDisplay是您创建的变量,而不是pygame上的属性。试着设置显示。在20,20时获取。我不知道您为什么要访问描述符,似乎在调用get_at描述符之前,您应该先在pygame.setDisplay上获得AttributeError,但无论如何,您应该针对setDisplay调用它,而不是脱离pygame的属性。

这很有效,谢谢!但是,现在它只是返回黑色,因为默认屏幕颜色是黑色。然而,我在20,20画了一个蓝色的圆圈。如何访问蓝色??不是100%确定pygame在这方面是如何工作的,但正如文档所说,pygame.draw.circle的最后一个参数是边框的宽度,如果要填充圆圈,则需要默认的0边框。尝试删除该函数调用的最后一个参数,看看这是否满足您的要求。