'pygame.Surface' 对象的描述符 'get_at' 不适用于 'tuple' 对象

descriptor 'get_at' for 'pygame.Surface' objects doesn't apply to a 'tuple' object

我正在创建一个程序,如果光标位置的像素还不是黑色,我将尝试在光标位置绘制一个矩形。

if pygame.Surface.get_at(pygame.mouse.get_pos()) != (0,0,0,255):
    pygame.draw.rect(win, (0,0,0), (x, y, 3, 3))

当我尝试执行 pygame.Surface.get_at() 时发生错误,说 ...

TypeError: descriptor 'get_at' for 'pygame.Surface' objects doesn't apply to a 'tuple' object

.. 即使 https://pygame.org 上 pygame.Surface.get_at() 的文档显示该方法的输入应该是一个元组。

get_at()
    get the color value at a single pixel
    get_at((x, y)) -> Color

    Return a copy of the RGBA Color value at the given pixel. If the Surface has no per pixel alpha, then 
    the alpha value will always be 255 (opaque). If the pixel position is outside the area of the Surface 
    an IndexError exception will be raised.

我该如何解决这个问题?

您需要在 pygame.Surface 对象上调用 get_at,而不是 class 本身。


screen = pygame.display.set_mode(size)

pixel = screen.get_at(pygame.mouse.get_pos()) #gets the pixel on the screen surface

another_surface = pygame.Surface((100, 100))

another_pixel = another_surface.get_at((50, 50)) #gets the pixel from the 'another_surface' surface