【发布时间】:2015-04-29 13:45:18
【问题描述】:
我正在尝试使用 Python (2.7.9) 中的生成器绘制函数和图形,但发现了一个问题:我无法将生成的像素数据(RGB 元组)刷新到 Pygame 像素数组中。这是我的代码(我尝试运行):
-
使用二维数组
pixArr = pygame.PixelArray(surface) pixArr=[[(0,0,function(x,y)) for x in range(1,screenX)] for y in range(1,screeny)] del pixArr
在这里我意识到 pixArr 不是一个普通的 2d 列表,因为我没有输出它(打印 pixArr)
-
然后我尝试使用范围
pixArr[0:screenX*screenY] = [(0,0,function(curPix%screenX, curPix//screenY)) for curPix in range(0,screenX*screenY)]
我在 pygame 网站 HERE 上找到了类似这样的代码,但它给了我错误“ValueError:序列大小不匹配”,在玩弄之后发现它只适用于单一颜色(例如 @ 987654324@将整个屏幕染成蓝色)
TL;DR:如何在不使用循环的情况下设置每个像素
For y in range(0,1000):
For x in range(0,1000):
gfx.draw(surface,x,y,(0,0,function(a,b))) #or pixArr in this line
【问题讨论】:
标签: python arrays pygame generator pixel