2012-04-27 17 views
12

Sto cercando un metodo che mi permetta di disegnare un singolo pixel sul display. Per esempio quando clicco il mouse, voglio che la posizione del pixel cliccato cambi colore. So come leggere il mouse pos, ma non sono riuscito a trovare un semplice disegno a pixel (c'è il metodo screen.fill ma non funziona come voglio).Pygame: Draw single pixel

+3

'surface.fill (COLORE, (pos, (1,1)) 'non è sufficiente? – jadkik94

risposta

27

Si può fare questo con surface.set_at():

surface.set_at((x, y), color) 

È anche possibile utilizzare pygame.gfxdraw.pixel():

from pygame import gfxdraw 
gfxdraw.pixel(surface, x, y, color) 

Do atto, tuttavia, l'avvertimento:

SPERIMENTALE !: significa questo le API possono cambiare o scomparire in versioni successive di pygame . Se lo usi, il tuo codice si interromperà con la successiva versione di pygame .

Si potrebbe utilizzare surface.fill() per fare il lavoro troppo:

def pixel(surface, color, pos): 
    surface.fill(color, (pos, (1, 1))) 

Si può anche semplicemente tracciare una linea con i punti di inizio e fine come la stessa:

def pixel(surface, color, pos): 
    pygame.draw.line(surface, color, pos, pos) 
+0

Ho provato questo, ma ho pensato che ci sia un qualche tipo di metodo specifico per farlo.Per ora rimarrò con quello. – ashur

+0

@ user1165499 Aggiornato con un altro metodo –