oujood.com

Python | Dessiner des formes différentes dans une scène PyGame

Pygame est un outil de développement de jeux vidéo multiplateforme écrit en Python. Il fournit des bibliothèques pour la création d'images, de sons et d'autres éléments graphiques.

Dessiner des formes différentes en PyGame

Pygame est un ensemble de modules Python multi-plateformes pour la création de jeux vidéo. Conçu pour être utilisé avec le langage de programmation Python, il comprend des bibliothèques d'images de synthèse et de sons. C'est ensuite à l'imagination ou au besoin du développeur de déterminer le type de jeu qu'il souhaite développer avec cette boîte à outils.

Il y a quatre étapes de base pour afficher des images dans la fenêtre de pygame :

  • Créer un objet surface d'affichage(ou scène ou écran ou fenêtre) en utilisant la méthode display.set_mode() de pygame.
  • Remplir l'objet surface de la couleur souhaitée (dans notre exemple blanc) en utilisant la méthode fill() de l'objet surface d'affichage de pygame.
  • Dessiner différentes formes sur cet objet surface en utilisant les fonctions de dessin primitif de pygame.
  • Afficher l'objet surface sur la fenêtre de pygame en utilisant la méthode display.update() de pygame.
  • Et Voici la réalisation :

    Exemple :       Copier le code

    # Importation du module pygame dans ce programme 
    import pygame 
    
    # activer la bibliothèque pygame . 
    # initier pygame et donner la permission 
    # d'utiliser les fonctionnalités de pygame. 
    pygame.init() 
    
    # définir la valeur RGB 
    # pour le blanc, le vert, 
    # bleu, noir, rouge 
    # respectivement. 
    blanc = (255, 255, 255) 
    vert = (0, 255, 0) 
    bleu = (0, 0, 128) 
    noir = (0, 0, 0) 
    rouge = (255, 0, 0) 
    
    # Attribution de valeurs aux variables X et Y 
    X = 400
    Y = 400
    
    # créer l'objet surface d'affichage 
    # de dimension spécifique..e(X,Y). 
    display_surface = pygame.display.set_mode((X, Y )) 
    
    # définit le nom de la fenêtre pygame 
    pygame.display.set_caption('Dessin') 
    
    # remplir complètement l'objet surface 
    # avec de la couleur blanche 
    display_surface.fill(blanc) 
    
    # dessine un polygone en utilisant la méthode draw.polygon() 
    # méthode de pygame. 
    # pygame.draw.polygon(surface, color, pointlist, thickness) 
    # le paramètre épaisseur de la ligne est optionnel. 
    pygame.draw.polygon(display_surface, bleu, 
        [(146, 0), (291, 106), 
        (236, 277), (56, 277), (0, 106)]) 
    
    # dessiner une ligne en utilisant la méthode draw.line() 
    # méthode de pygame. 
    # pygame.draw.line(surface, color, 
    # point de départ, point d'arrivée, épaisseur) 
    pygame.draw.line(display_surface, vert, 
        (60, 300), (120, 300), 4) 
    
    # dessiner un cercle en utilisant la méthode draw.circle() 
    # méthode de pygame. 
    # pygame.draw.circle(surface, color, 
    # point central, rayon, épaisseur) 
    pygame.draw.circle(display_surface, 
        vert, (300, 50), 20, 0) 
    
    # dessiner une ellipse en utilisant la méthode draw.ellipse() 
    # méthode de pygame.
    # pygame.draw.ellipse(surface, color, 
    # rectangle de délimitation, épaisseur) 
    pygame.draw.ellipse(display_surface, noir, 
        (300, 250, 40, 80), 1) 
    
    # dessiner un rectangle en utilisant la méthode draw.rect() 
    # méthode de pygame. 
    # pygame.draw.rect(surface, color, 
    # tuple rectangle, épaisseur) 
    # le paramètre épaisseur de la ligne est optionnel. 
    pygame.draw.rect(display_surface, noir, 
        (150, 300, 100, 50)) 
    
    # boucle infinie 
    while True : 
        for event in pygame.event.get() : 
    
            # si le type d'objet événement est QUIT 
            # alors quitter le pygame 
            # et le programme. 
            if event.type == pygame.QUIT : 
    
                # désactive la bibliothèque pygame 
                pygame.quit() 
    
                # quitte le programme. 
                quit() 
    
            # dessine l'objet surface à l'écran. 
            pygame.display.update() 
    

    Sortie :

    pygame dessin de différentes formes

    Voici un autre exemple qui donne toutes les méthodes de dessin de pygame.draw

    Exemple :       Copier le code

    import pygame
    import sys
    
    # Initialisation de pygame (assurez-vous d'avoir installé pygame au préalable)
    pygame.init()
    
    # Définir la largeur et la hauteur de la fenêtre
    width, height = 800, 600
    
    # Créer la fenêtre
    screen = pygame.display.set_mode((width, height))
    pygame.display.set_caption("Pygame Draw Methods")
    
    # Couleurs
    white = (255, 255, 255)
    black = (0, 0, 0)
    
    # Effacer l'écran
    screen.fill(white)
    
    # Dessiner des formes avec annotations
    pygame.draw.aaline(screen, black, (50, 50), (200, 50))
    text_surface = pygame.font.SysFont(None, 24).render("aaline", True, black)
    screen.blit(text_surface, (50, 60))
    
    pygame.draw.aalines(screen, black, False, [(250, 50), (400, 50), (400, 200), (250, 200)])
    text_surface = pygame.font.SysFont(None, 24).render("aalines", True, black)
    screen.blit(text_surface, (250, 210))
    
    pygame.draw.arc(screen, black, (50, 250, 150, 100), 0, 3.14)
    text_surface = pygame.font.SysFont(None, 24).render("arc", True, black)
    screen.blit(text_surface, (50, 360))
    
    pygame.draw.circle(screen, black, (350, 350), 50)
    text_surface = pygame.font.SysFont(None, 24).render("circle", True, black)
    screen.blit(text_surface, (300, 400))
    
    pygame.draw.ellipse(screen, black, (500, 250, 150, 100))
    text_surface = pygame.font.SysFont(None, 24).render("ellipse", True, black)
    screen.blit(text_surface, (500, 360))
    
    pygame.draw.line(screen, black, (50, 500), (200, 500), 5)
    text_surface = pygame.font.SysFont(None, 24).render("line", True, black)
    screen.blit(text_surface, (50, 510))
    
    pygame.draw.lines(screen, black, False, [(250, 500), (400, 500), (400, 650), (250, 650)], 5)
    text_surface = pygame.font.SysFont(None, 24).render("lines", True, black)
    screen.blit(text_surface, (250, 660))
    
    pygame.draw.polygon(screen, black, [(500, 500), (650, 500), (650, 650), (500, 650)])
    text_surface = pygame.font.SysFont(None, 24).render("polygon", True, black)
    screen.blit(text_surface, (500, 660))
    
    pygame.draw.rect(screen, black, (650, 500, 100, 150))
    text_surface = pygame.font.SysFont(None, 24).render("rect", True, black)
    screen.blit(text_surface, (650, 510))
    
    # Mettre à jour l'affichage
    pygame.display.flip()
    
    # Attendre que l'utilisateur ferme la fenêtre
    running = True
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
        pygame.time.delay(10)
    
    # Quitter pygame
    pygame.quit()
    sys.exit()
    

    Dans cet exemple nous affichons aussi du texte sous chaque forme donnant ainsi le nom de la méthode utilisée

    Comment dessiner un rectangle avec des coins arrondis dans PyGame ?

    Dans ce qui suit, nous verrons comment dessiner un rectangle aux coins arrondis dans Pygame.

    Fonctions utilisées :

    • pygame.display.set_mode() : Cette fonction est utilisée pour initialiser une surface d'affichage. Cette fonction prend en paramètre la taille de l'écran.
    • pygame.display.flip() : Cette fonction est utilisée pour mettre à jour le contenu de toute la surface d'affichage de l'écran.
    • pygame.draw.rect() : Cette fonction est utilisée pour dessiner un rectangle. Elle prend la surface, la couleur et les objets pygame Rect comme paramètres d'entrée et dessine un rectangle sur la surface. Syntaxe de la fonction :

      > rect(surface, color, rect, width=0, border_radius=0, border_top_left_radius=-1, border_top_right_radius=-1, border_bottom_left_radius=-1, border_bottom_right_radius=-1)

      Les paramètres border_radius n'ont été ajoutés qu'à la version 2.0.0.dev8 de PyGame.

    Exemple 1 : Cet exemple dessine un rectangle dont tous les coins sont arrondis.

    Exemple :       Copier le code

    # Importation de la bibliothèque
    import pygame
    
    # Initialisation de Pygame
    pygame.init()
    
    # Initialisation de la surface
    surface = pygame.display.set_mode((400, 300))
    
    # Initialisation de la couleur
    color = (148, 141, 70)
    
    # Dessiner le rectangle
    pygame.draw.rect(surface, color, pygame.Rect(30, 30, 60, 60), 2, 5)
    pygame.display.flip()
    

    En outre, Pygame peut être utilisé pour arrondir un seul coin selon les besoins. L'exemple ci-dessous illustre la mise en œuvre de cette méthode.

    Exemple 2 : Cet exemple dessine un rectangle dont seul le coin supérieur gauche est arrondi.

    Exemple :       Copier le code

     # Importation de la bibliothèque
    import pygame
    
    # Initialisation de Pygame
    pygame.init()
    
    # Initialisation de la surface
    surface = pygame.display.set_mode((400, 300))
    
    # Initialisation de la couleur
    color = (48, 141, 70)
    
    # Dessiner le rectangle
    pygame.draw.rect(surface, color, pygame.Rect(
    	30, 30, 60, 60), 2, border_top_left_radius=5)
    
    # Affichage de l'objet
    pygame.display.flip()
    
     

Voir aussi nos tutoriel :

Les images dans bootstrap

Apprenez à appliquer le style aux images, créer des vignettes, des grilles d'images et de vidéos et plus à l'aide de Bootstrap.

SVG en HTML

SVG en HTML

Conditionnel if...else javascript

Conditionnel if...else js : Définition et utilisation de la condition if avec des exemples.