Il metodo render di Pygame

Il metodo render di Pygame mi permette di renderizzare un testo trasformandolo in un oggetto grafico.

oggetto.render(testo, antialiasing, col1,col2)

Gli argomenti del metodo sono:

  • Testo
    La stringa di testo che voglio renderizzare.
  • Antialiasing
    Il secondo parametro riguarda l'antialiasing attivato (True) o disattivato (False).
  • Colore del testo
    Il testo parametro è il colore del testo in formato RGB dentro una tupla.
  • Colore di sfondo
    Il colore dello sfondo del testo, indicato sempre con una tupla in valori RGB.

Per ottenere un testo su sfondo trasparente basta non indicare il quarto parametro (colore di sfondo).

Il metodo render viene ereditato automaticamente dagli oggetti di tipo font che ho definito precedentemente con la funzione Font() di pygame.

Cosa significa renderizzare? Deriva da rendering, renderizzare vuol dire trasformare una stringa o altro in un'immagine grafica.

    Un esempio pratico

    In questo esempio stampo a video la scritta Hello World di colore rosso.

    1. import pygame
    2. pygame.init()
    3. screen = pygame.display.set_mode((400,300))
    4. RED = (255,0,0)
    5. stile=pygame.font.Font('freesansbold.ttf',16)
    6. testo=stile.render("Hello World", True, RED)
    7. running = True
    8. while running:
    9. screen.fill((255, 255, 255))
    10. for event in pygame.event.get():
    11. if event.type == pygame.QUIT:
    12. running=False
    13. screen.blit(testo, (150,100))
    14. pygame.display.update()

    Alla riga 5 definisco un oggetto grafico di tipo font e lo assegno alla variabile stile tramite la funzione Font().

    Nell'oggetto font definisco un testo di dimensioni 16 usando il font freesansbold.

    stile=pygame.font.Font('freesansbold.ttf',16)

    Nella riga 6 assegno alla variabile testo la renderizzazione della stringa "Hello World" tramite il metodo render() dell'oggetto stile.

    Nella renderizzazione indico l'antialiasing attivo e il colore testo di colore rosso.

    testo=stile.render("Hello World", True, RED)

    Infine, alla riga 13 uso il metodo blit() per disegnare il testo sull'oggetto di superficie del gioco (screen) alle coordinate (150,100).

    screen.blit(testo, (150,100))

    Quando eseguo lo script, il testo viene renderizzato e visualizzato, con il colore rosso, nella posizione che ho indicato nell'area di lavoro.

    Il testo viene visualizzato su uno sfondo trasparente perché non ho indicato il colore di sfondo.

    il risultato in output

    Per colorare lo sfondo del testo basta indicare anche il quarto parametro del metodo render().

    Ad esempio, definisco un altro colore, lo assegno alla variabile BLACK e la indico come quarto parametro del metodo render.

    BLACK = (0,0,0)
    testo=stile.render("Hello World", True, RED, BLACK)

    Ecco il risultato in output

    il risultato dopo la modifica

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    PyGame