'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
我正在创建一个程序,如果光标位置的像素还不是黑色,我将尝试在光标位置绘制一个矩形。
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