La funzione Rect() di pygame
La funzione Rect() di pygame crea un oggetto di tipo rettangolo in uno script python.
pygame.Rect(x,y,width,height)
L'argomento della funzione è una tupla con quattro elementi che indicano
- x = le coordinate x dell'angolo in alto a sinistra del rettangolo
- y = le coordinate y dell'angolo in alto a sinistra del rettangolo
- width = la larghezza del rettangolo in pixel
- height = l'altezza del rettangolo in pixel
A cosa serve? L'oggetto Rect() posso sostituirlo a una tupla numerica nella funzione draw.rect() per disegnare delle figure geometriche rettangolari. Ha però dei vantaggi in quanto è un oggetto. Quindi posso usarlo nella programmazione a oggetti usando le proprietà e i metodi dell'oggetto.
L'oggetto rettangolo posso salvarlo in una variabile che eredita automaticamente tutte le proprietà del rettangolo.
>>> var = pygame.Rect(10,20,100,200)
La funzione rect() crea un tipo di dato Rect.
Di fatto è una tupla composta da 4 elementi.
>>> var == (10,20,100,200)
True
Un esempio pratico
In questo script creo un oggetto di tipo Rect alla riga 5 con la funzione pygame.Rect().
- import pygame
- pygame.init()
- finestra1 = pygame.display.set_mode((400,300))
- RED = (255,0,0)
- rettangolo=pygame.Rect(10,20,100,200)
- pygame.draw.rect(finestra1, RED, rettangolo,0)
- while True:
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- pygame.quit()
- sys.exit()
- pygame.display.update()
Alla riga 6 uso la funzione draw.rect() per visualizzare il rettangolo sull'oggetto di superficie del gioco.
Il risultato in output è il seguente
Python stampa sullo schermo un rettangolo di colore rosso alle coordinate e con le dimensioni che ho indicato.
Le proprietà dell'oggetto Rect
Uno dei vantaggi a disegnare un rettangolo con la funzione Rect() è l'accesso alle caratteristiche del rettangolo tramite le proprietà dell'oggetto Rect().
Ad esempio, creo un oggetto di tipo rettangolo.
>>> var = pygame.Rect(10,20,100,200)
Successivamente posso leggere la larghezza del rettangolo tramite la proprietà width.
>>> MyRect.width
100
E ovviamente posso anche modificare il valore della proprietà width dell'oggetto.
>>> MyRect.width = 50
Oltre alla proprietà width un oggetto di tipo Rect ha molte altre proprietà predefinite
Ecco l'elenco completo
- left
il valore x delle coordinate dell'angolo a sinistra del rettangolo. - right
il valore x delle coordinate dell'angolo a destra del rettangolo. - top
il valore y al lato superiore - bottom
il valore y al lato inferiore - centerx
il valore x al centro del rettangolo - centery
il valore y al centro del rettangolo - width
la larghezza del rettangolo - height
l'altezza del rettangolo - size
una tupla con larghezza e altezza del rettangolo - topleft
una tupla con le coordinate del punto in alto a sinistra - topright
una tupla con le coordinate del punto in alto a destra - bottomleft
una tupla con le coordinate del punto in basso a sinistra - bottomright
una tupla con le coordinate del punto in basso a destra - midleft
una tupla con le coordinate del punto al centro sul lato a destra - midright
una tupla con le coordinate del punto al centro sul lato a sinistra - midleft
una tupla con le coordinate del punto al centro sul lato a destra - midtop
una tupla con le coordinate del punto al centro sul lato superiore - midbottom
una tupla con le coordinate del punto al centro sul lato inferiore
E così via.