我試圖繪製功能和使用生成的圖表在Python(2.7.9),並發現了一個問題:我不能刷新我的產生的像素數據(RGB的元組)成pygame的像素陣列。這裏是我的代碼(我tryied運行):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名單becouse的我未能輸出它(打印pixArr)
然後我試了用範圍
pixArr[0:screenX*screenY] = [(0,0,function(curPix%screenX, curPix//screenY)) for curPix in range(0,screenX*screenY)]
我發現了一些像pygame的網站HERE這個代碼,但它給我的錯誤「ValueError異常:序列大小不匹配」,玩弄它變得清晰,它與一個只適用後單一顏色(例如顏色pixArr[0:screenX*screenY]=(0,0,255)
整個屏幕藍色)
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
發現了另一個錯誤:範圍(0,LEN(pixArr) )必須使用的範圍(0,screenMaxX * ScreenMaxY) – Max
實際上,仰視進一步,'LEN(pixArr)== surface.get_width()','而LEN(pixArr [I])== surface.get_height INSEAD( )' – kstenger
確實!剛剛發現它。像素陣列上的Pygames網頁是愚蠢的不一致的。例如,像素陣列不具備「pygame.PixelArray.ndim \t - \t返回維數。」方法,不像寫在那裏。 – Max