2012-05-15 4 views
1

С помощью javascript и canvas вы можете заполнить массив цветом для каждого пикселя, а затем поместить его на экран. Как я могу сделать это в python, используя pygame? Достаточно небольшого примера.Как я могу поставить целый пиксель на экране с pygame?

+0

Я попытался с помощью массива пикселей, но пиксели получают положенные на экране, как только я даю им значение, как pixelarray [1] [1] = (0,0,0). Но это не очень эффективно для того, что я хочу делать. Мне нужно сделать массив, а затем положить все это за одну операцию. – nope

+2

Вы можете создать новую Поверхность, нарисовать ее, а затем выложить ее обратно на поверхность окна. – Avilo

+0

surfarray действительно может быть вашим лучшим выбором. Кроме того, pixelarray не является неэффективным. Это просто взгляд на базовые данные поверхности. Предполагая, что вы все равно заботитесь о поверхности, pixelarray на самом деле будет * быстрее! – imallett

ответ

2

Вот краткий пример я взбитый:

import pygame, sys, random 
from pygame.locals import * 

arr=[] 
RED=(255,10,10) 
BLU=(10,255,10) 
GRN=(10,10,255) 
arr.append(RED) 
arr.append(BLU) 
arr.append(GRN) 
SCREEN_X=100 
SCREEN_Y=100 

screen = pygame.display.set_mode((SCREEN_X, SCREEN_Y)) 
square=pygame.Surface((1, 1)) 

for j in range (SCREEN_Y): 
    for i in range (SCREEN_X): 
     num=random.randint(0,2) 
     square.fill(arr[num]) 
     draw_me=pygame.Rect((j+1), (i+1), 1, 1) 
     screen.blit(square,draw_me) 
pygame.display.flip() 

Я заполнил массив красных синий и зеленый, затем случайным образом выбрать цвет для рисования.

Надеется, что это помогает