Pygame per disegnare sullo schermo

Pygame per disegnare sullo schermo

In questa lezione vedremo come utilizzare pygame per disegnare sullo schermo.

Nella scorsa lezione abbiamo visto come importare la libreria pygame e abbiamo creato la nostra prima finestra, adesso vedremo come personalizzarla.

Proviamo quindi a colorare lo sfondo. Ricordiamo alcuni colori in RGB.

Bianco – RGB(255,255,255)

Nero – RGB(0,0,0)

Rosso – RGB(255,0,0)

Verde – RGB(0,255,0)

Blu – RGB(0,0,255)

Giallo – RGB(255,255,0)

Magenta – RGB(255,0,255)

Ciano – RGB(0,255,255)


Quindi supponiamo di voler creare una finestra con lo sfondo giallo.

import pygame

pygame.init()

screen=pygame.display.set_mode((640,480))

pygame.display.set_caption(‘Coding Creativo’)

 

GIALLO=(255, 255, 0)

screen.fill(GIALLO)

pygame.display.flip()

In Python il colore si rappresenta con un tupla e quindi per il giallo impostiamo la tupla (255,255,0).

Applichiamo poi il metodo fill all’istanza dell’oggetto screen, ovvero la variabile che abbiamo creato in precedenza. In questo modo coloreremo la nostra finestra di giallo.

Utilizziamo poi la funzione flip del sotto-modulo display affinché le modifiche diventino effettive.

Quando dobbiamo disegnare qualcosa occorre sempre chiamare la funzione flip per rendere effettive le modifiche.


Utilizzare Pygame per disegnare sullo schermo.

Per disegnare sullo schermo possiamo utilizzare il sotto – modulo draw.

Il sotto modulo draw di pygame contiene alcune funzioni:

pygame.draw.circle – disegna un cerchio

pygame.draw.circle (superficie, colore, pos, raggio, larghezza)

pygame.draw.polygon – disegna un poligono

pygame.draw.polygon (superficie, colore, lista puntiforme, larghezza)

pygame.draw.rect – disegna un rettangolo

pygame.draw.rect (superficie, colore, Rettangolo, larghezza

pygame.draw.ellipse – disegna un’ellisse

pygame.draw.ellipse (superficie, colore, Rettangolo, larghezza)

pygame.draw.arc – disegna un arco

pygame.draw.arc (superficie, colore, Rect, start_angle, stop_angle, width = 1)

pygame.draw.line – disegna un segmento di linea retta

pygame.draw.line (superficie, colore, start_pos, end_pos, larghezza = 1)

pygame.draw.lines – disegna più segmenti di linea contigui

pygame.draw.lines (superficie, colore, chiuso, lista puntiforme, larghezza = 1)

pygame.draw.aaline – disegna una linea sottile antialias

pygame.draw.aaline (superficie, colore, startpos, endpos, blend = 1)

pygame.draw.aalines – disegna una sequenza di linee antialias

pygame.draw.aalines (superficie, colore, chiuso, elenco punti, blend = 1)

Dove:

superficie – rappresenta la superficie sulla quale disegnare la forma.

colore – Rappresenta il colore che si vuole utilizzare. Es. (255,0,0)

pos – Rappresenta la posizione del centro del cerchio.

raggio – Rappresenta il raggio del cerchio in pixel.

larghezza – Rappresenta la posizione della linea o del contorno della forma. Se larghezza è uguale a 0 la forma sarà riempita.

rettangolo – area rettangolare dove verrà disegnata la forma.

lista puntiforme – Rappresenta un elenco di una quantità arbitraria di punti, in pixel (x, y). 

blend – verrà disegnata una linea tra il primo e l’ultimo punto se vero.

star_angle – Angolo iniziale in radianti

stop_angle – Angolo finale in radianti

star_pos – Posizione iniziale della linea in pixel

stop_angle – Posizione finale della linea in pixel

Facciamo dunque degli esempi, disegnando alcune forme.

import pygame

pygame.init()
screen=pygame.display.set_mode((640,480),0,32)
pygame.display.set_caption('Coding Creativo')

RED=(255, 0, 0)
WHITE=(255,255,255)
BLACK=(0,0,0)
GREEN=(0,255,0)
BLUE=(0,0,255)
YELLOW=(255,255,0)
CYAN=(0,255,255)

screen.fill(YELLOW)

pygame.draw.circle(screen, GREEN, (30, 30),  10, 1)
pygame.draw.circle(screen, RED, (90, 30),  20, 0)
pygame.draw.line(screen, BLUE, (150, 30), (200, 30))
pygame.draw.rect(screen, BLACK,(230, 20, 30, 30),1)
pygame.draw.rect(screen, BLUE,(300, 10, 70, 60))
pygame.draw.ellipse(screen, CYAN, (390, 10, 80, 40), 0)

pygame.display.flip()

Alcuni link utili

Indice tutorial sul linguaggio python

1 – Introduzione al linguaggio python

2 – Le variabili in python

3 – Operatori aritmetici e di assegnazione in python

4 – Stringhe in python

5 – Casting in python

6 – Input e print in python

7 – Primi esercizi in python

8 – Errori in python

9 – Script python

10 – Scambio di variabili in python

Pygame

Pygame

Pygame è un insieme di moduli, free and open source, progettati per creare dei videogiochi.

Come installare pygame

Per l’installazione occorre seguire dunque questi semplici passaggi:

1 -Per prima cosa occorre controllate che abbiate installato Python seguendo le istruzioni al link: https://www.codingcreativo.it/il-python/

Infatti se in fase di installazione non avete selezionato Add Python 3.X to PAT rivedete i passaggi.

2 – Per prima cosa, bisogna aprire il prompt dei comandi, digitando cmd sulla barra dei programmi in basso a sinistra.

3 – Dopo, digitare python3 -m pip install -U pygame –user

4 – Quindi aspettare che i file necessari vengano scaricati da internet

5 – Infine controllare che tutto sia andato bene, aprendo l’IDLE e digitando:

>>> import pygame

Se non compare un messaggio di errore allora avete terminato l’installazione dei moduli.

Altrimenti può anche essere che pip non sia aggiornato, occorre allora farlo.

Quindi digitate per Windows:

python -m pip install -U pip

per Linux:

sudo apt install python3-pip

N.B. Se nel prompt dei comandi digitate python -m pygame.examples.aliens potete vedere una demo del gioco aliens.


Primo programma – Creazione della finestra

Creiamo quindi, come primo esempio, una semplice finestra con il titolo Coding Creativo.

import pygame

pygame.init()

screen=pygame.display.set_mode((640,480))

pygame.display.set_caption(‘Coding Creativo’)

Innanzitutto abbiamo, all’inizio del programma, importato il modulo.

Dopo abbiamo inserito la funzione init() che serve ad inizializzare tutti i sotto-moduli e deve essere chiamata prima di tutte le altre.

Poi abbiamo utilizzato la funzione set_mode del sotto-modulo display che serve a creare la finestra con le dimensioni assegnate.

Assegniamo alla variabile screen il risultato della funzione, la quale restituisce un oggetto di tipo Surface. Un oggetto Surface è un oggetto che rappresenta la superficie, ovvero l’area della finestra aperta.

Un oggetto surface è caratterizzato dalla risoluzione e dal formato dei pixel.

All’interno della funzione set_mode si inserisce la tupla con i valori di larghezza e altezza della finestra, cioè la risoluzione, in questo caso 640 x 480.

Infine la funzione set_caption, sempre del sotto-modulo display, che serve a creare la finestra con le dimensioni assegnate.

In questo caso inseriamo come titolo di esempio ‘Coding Creativo‘.


In alternativa potremmo anche utilizzare:


from pygame import *

init()

schermo=display.set_mode((640,480))

display.set_caption(‘Coding Creativo’)


In questo modo si evita di digitare ogni volta pygame prima di ogni funzione.

Sebbene questo metodo potrebbe sembrare più semplice è però meno utilizzato.

Continueremo nella prossima lezione con tanti altri esempi.


Alcuni link utili

Indice tutorial sul linguaggio python

1 – Introduzione al linguaggio python

2 – Le variabili in python

3 – Operatori aritmetici e di assegnazione in python

4 – Stringhe in python

5 – Casting in python

6 – Input e print in python

7 – Primi esercizi in python

8 – Errori in python

9 – Script python

10 – Scambio di variabili in python