【发布时间】:2019-10-10 22:17:28
【问题描述】:
我正在编写一个基本程序,它从一个文件中读取数据,其中每个字符代表一个像素的颜色,然后使用 pygame 在屏幕上显示该信息。
我有一段代码可以读取运行良好的文件,但是当我尝试一个一个地显示像素时,我收到一个错误,上面写着“'pygame.Surface'对象的描述符'set_at'没有'不适用于'元组'对象”。 “网格”是一个二维数组,包含文件中的 0 和 1 数据。
print("Done processing file, Drawing pixels...")
for i in range(0, height - 2):
for j in range(0, width - 2):
if grid[i][j] == 0:
pygame.Surface.set_at((i, j), "black") #Throws the error
elif grid[i][j] == 1:
pygame.Surface.set_at((i, j), "white")
print("Pixels drawn!")
我正在尝试使用“i”和“j”值来描述我要修改的像素的“x”和“y”,但 pygame 似乎将其读取为与我不同的数据类型想?我不完全确定为什么 pygame 不期望坐标元组(对我来说似乎是笛卡尔坐标最合乎逻辑的数据类型)。
我对 pygame 很陌生,所以我希望这是一个相对简单的错误,并且可以轻松修复。如果您想要此特定功能的文档:https://www.pygame.org/docs/ref/surface.html#pygame.Surface.set_at
【问题讨论】:
-
总是将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图)放在有问题的(不是评论)中。还有其他有用的信息。
-
surface 应该是
pygame.Surface类的实例,而不是pygame.Surface类的实例 - 即。my_surface = pygame.Surface()和my_surface.set_at(...)。或screen = pygame.display.set_mode(...)和screen.set_at(...)
标签: python pygame pygame-surface