Les variables superglobales
Dans cet article, nous allons voir comment dessiner un objet en utilisant Pygame. Il peut y avoir deux versions pour dessiner une forme, elle peut être solide ou juste un contour.
Vous pouvez facilement dessiner des formes de base dans Pygame en utilisant la méthode draw de Pygame.
Pour dessiner un rectangle dans votre projet pygame, vous pouvez utiliser la fonction draw.rect().
Syntaxe : pygame.draw.rect(surface, color, rect, width)
Paramètres :surface :- Nous transmettons ici la surface sur laquelle nous voulons dessiner notre rectangle. Dans l'exemple ci-dessous, nous avons créé un objet surface nommé 'ecran'.
color :- Ici, nous pouvons passer la couleur de notre rectangle. Nous utilisons la couleur bleue dans notre exemple.
rect :- Ici, nous pouvons passer le rectangle, la position et les dimensions.
width :- Ici, nous pouvons passer l'épaisseur de la ligne. Nous pouvons également créer un rectangle solide en changeant la valeur de ce paramètre de largeur. Voyons cela.
Tout d'abord, on importe le module requis et on initialise pygame. Ensuite, on crée l'objet surface d'une dimension spécifique en utilisant la méthode display.set_mode() de pygame. On remplit l'arrière-plan de l'objet surface avec une couleur blanche en utilisant la fonction fill() de pygame. On crée un rectangle en utilisant la méthode draw.rect() de pygame. On met à jour l'objet Surface.
Exemple 1 : Dessiner un rectangle en utilisant pygame.
Exemple : Copier le code
# Importation du module pygame import pygame from pygame.locals import * # initier pygame et donner la permission # d'utiliser les fonctionnalités de pygame. pygame.init() # créer l'objet surface d'affichage # de dimension spécifique. ecran = pygame.display.set_mode((600, 600)) # Remplir l'écran avec de la couleur blanche ecran.fill((255, 255, 255)) # Utiliser le module draw.rect de # pygame pour dessiner le rectangle délimité pygame.draw.rect(ecran, (0, 0, 255), [100, 100, 400, 100], 2) # Dessine l'objet surface à l'écran. pygame.display.update()Sortie :
Pour dessiner un rectangle plein on donne la valeur 0 au paramètre width
le code pour dessiner le rectangle devient :
pygame.draw.rect(ecran, (0, 0, 255), [100, 100, 400, 100], 0)
Pour dessiner un cercle dans votre projet pygame, vous pouvez utiliser la fonction draw.circle(). L'approche est la même que celle décrite ci-dessus, seuls la fonction et les paramètres sont modifiés en conséquence.
Syntaxe : pygame.draw.circle(surface, color, center, radius, width)
Paramètres :surface :- Ici, nous pouvons passer la surface sur laquelle nous voulons dessiner notre cercle. Dans l'exemple ci-dessus, nous avons créé un objet surface nommé 'ecran'.
color :- Ici, nous pouvons passer la couleur de notre cercle. Nous utilisons la couleur verte dans notre exemple.
center :- Ici, nous pouvons passer les coordonnées ( x, y ) du centre du cercle.
radius :- Nous pouvons passer ici le rayon de notre cercle.
width :- Ici, nous pouvons passer l'épaisseur de la ligne. Nous pouvons également créer un cercle solide en changeant la valeur de ce paramètre le en mettant égal au radius ou égal à 0. Voyons donc ce qu'il en est.
Exemple : Dessiner un cercle creux.
Exemple : Copier le code
# Importation du module pygame import pygame from pygame.locals import * # initier pygame et donner la permission # d'utiliser les fonctionnalités de pygame. pygame.init() # créer l'objet surface d'affichage # de dimension spécifique. ecran = pygame.display.set_mode((600, 600)) # Remplir l'écran avec de la couleur blanche ecran.fill((255, 255, 255)) # Utiliser le module draw.rect de # pygame pour dessiner le cercle solide pygame.draw.circle(ecran, (250, 0, 0), [300, 300], 100, 1) # Dessine l'objet surface à l'écran. pygame.display.update()Sortie :
Nous pouvons créer un cercle solide en fixant le paramètre de largeur à 0.
De même, vous pouvez dessiner d'autres formes de base en utilisant le module draw de pygame.
Le polygone souhaité peut être dessiné à l'aide de la fonction polygon().
Syntaxe : polygon(surface, couleur, points, largeur)
Une fois encore, l'approche reste la même, seuls la fonction et les paramètres changent.
Exemple : dessiner un polygone solide
Exemple : Copier le code
# Importation du module pygame import pygame from pygame.locals import * # initier pygame et donner la permission # d'utiliser les fonctionnalités de pygame. pygame.init() # créer l'objet surface d'affichage # de dimension spécifique. ecran = pygame.display.set_mode((600, 600)) # Remplir l'écran avec de la couleur blanche ecran.fill((255, 255, 255)) # Utiliser le module draw.rect de # pygame pour dessiner le polygone délimité pygame.draw.polygon(ecran, (255, 0, 0), [[300, 300], [100, 400], [100, 300]], 2) # Dessine l'objet surface à l'écran. pygame.display.update()
Ce qui affiche :
Une ligne est l'entité de dessin la plus basique et peut être dessinée dans pygame en utilisant la fonction line().
Syntaxe : pygame.draw.line(surface, color, start_pos, end_pos, width)
Exemple 1 : dessiner une ligne
Exemple : Copier le code
# Importation du module pygame import pygame from pygame.locals import * # initier pygame et donner la permission # d'utiliser les fonctionnalités de pygame. pygame.init() # créer l'objet surface d'affichage # de dimension spécifique. ecran = pygame.display.set_mode((600, 600)) # Remplir l'écran avec de la couleur blanche ecran.fill((255, 255, 255)) # Utiliser le module draw.line de # pygame pour dessiner la ligne pygame.draw.line(ecran, (250, 120, 250), [100, 300], [500, 300], 5) # Dessine l'objet surface à l'écran. pygame.display.update()
Sortie :
Vous pouvez dessiner plusieurs formes sur le même objet de surface. Pour cela, les premiers modules nécessaires sont importés et pygame est initialisé. Maintenant, créez l'objet surface d'une dimension spécifique en utilisant la méthode display.set_mode() de pygame. Remplissez l'arrière-plan de l'objet surface avec une couleur blanche en utilisant la fonction fill() de pygame. Créez les formes nécessaires comme décrit ci-dessus. Mettre à jour l'objet Surface
Exemple 1 : Dessiner un cercle à l'intérieur d'un rectangle.
Exemple : Copier le code
# Importer le module pygame import pygame from pygame.locals import * # initier pygame et donner la permission # d'utiliser les fonctionnalités de pygame. pygame.init() # créer l'objet surface d'affichage # de dimension spécifique. ecran = pygame.display.set_mode((600, 600)) # Remplir l'écran avec de la couleur blanche ecran.fill((255, 255, 255)) # Utiliser le module draw.rect de # pygame pour dessiner le rectangle pygame.draw.rect(ecran, (0, 0, 255), [50, 200, 500, 200]) # Utilisation du module draw.circle de # pygame pour dessiner le cercle à l'intérieur du rectangle pygame.draw.circle(ecran, (0, 255, 0), [300, 300], 100) # Dessine l'objet surface à l'écran. pygame.display.update()
Exemple : Copier le code
# Importation du module pygame import pygame from pygame.locals import * # initier pygame et donner la permission # d'utiliser les fonctionnalités de pygame. pygame.init() # créer l'objet surface d'affichage # de dimension spécifique. ecran = pygame.display.set_mode((600, 600)) # Remplir l'écran avec de la couleur blanche ecran.fill((255, 255, 255)) # Créer une liste de différents rectangles rectangle_list = [pygame.Rect(50, 100, 500, 200), pygame.Rect(70, 120, 460, 160), pygame.Rect(90, 140, 420, 120), pygame.Rect(110, 160, 380, 80), pygame.Rect(130, 180, 340, 40) ] # Création d'une liste de couleurs différentes color_list = [(0, 0, 0), (255, 255, 255), (0, 0, 255), (0, 255, 0), (255, 0, 0) ] # Création d'une variable que nous utiliserons # pour itérer sur la liste des couleurs color_var = 0 # Itération sur la liste des rectangles en utilisant la boucle # boucle for for rectangle in rectangle_list : # Dessiner le rectangle # en utilisant la méthode draw.rect() pygame.draw.rect(ecran, color_list[color_var], rectangle) # Augmenter la valeur de color_var # de 1 après chaque itération color_var += 1 # Dessine l'objet surface à l'écran. pygame.display.update()
Vous pouvez facilement créer vos propres fonctions de dessin spécialisées dans pygame.
Pour ce faire, suivez la procédure suivante. Créez une fonction de dessin qui prendra la position de départ, la largeur et la hauteur comme paramètres. Dessinez les formes requises comme décrit ci-dessus. Appelez la fonction de dessin()
Exemple : Copier le code
# Importer le module pygame import pygame from pygame.locals import * # Création de la fonction de dessin def drawingfunction(x, y, width, height) : # Création d'un rectangle à l'aide de la méthode draw.rect() pygame.draw.rect(ecran, (0, 0, 255), [x, y, width, height]) # Calcul du centre du cercle circle_x = largeur/2 + x cercle_y = hauteur/2 + y # Calcul du rayon du cercle si hauteur < largeur : rayon = hauteur/2 sinon : rayon = largeur/2 # Dessiner le cercle pygame.draw.circle(ecran, (0, 255, 0), [circle_x, circle_y], radius) # initier pygame et donner la permission # d'utiliser les fonctionnalités de pygame. pygame.init() # créer l'objet surface d'affichage # de dimension spécifique. ecran = pygame.display.set_mode((600, 600)) # Remplir l'écran avec de la couleur blanche ecran.fill((255, 255, 255)) # Appel de la fonction de dessin drawingfunction(50, 200, 500, 200) # Dessine l'objet surface à l'écran. pygame.display.update()
Voyons maintenant comment nous pouvons créer des formes lorsque l'utilisateur clique sur la souris. Nous allons créer des cercles dans l'exemple suivant, mais vous pouvez créer n'importe quelle forme.
Créez une liste pour stocker la position de la forme à dessiner. Créez une variable pour stocker la couleur de la forme. Créez une variable que nous utiliserons pour exécuter la boucle while et Créez une boucle while. Itérer sur tous les événements reçus de pygame.event.get(). Si le type d'événement est quit, mettre la variable run à false. Si le type de l'événement est MOUSEBUTTONDOWN (cet événement se produit lorsque l'utilisateur appuie sur le bouton de la souris), nous récupérons la position actuelle dans une variable et l'ajoutons à notre liste circle_positions. Itérer sur toutes les positions dans le tableau créé à l'aide d'une boucle for. Continuer à dessiner la forme. Mettre à jour l'objet surface.
Exemple : Copier le code
# Importation du module pygame import pygame from pygame.locals import * # initier pygame et donner la permission # d'utiliser les fonctionnalités de pygame. pygame.init() # créer l'objet surface d'affichage # de dimension spécifique. ecran = pygame.display.set_mode((600, 600)) # Remplir l'écran avec de la couleur blanche ecran.fill((255, 255, 255)) # créer une liste dans laquelle nous stockerons # la position du cercle circle_positions = [] # rayon du cercle rayon_cercle = 60 # Couleur du cercle color = (0, 0, 255) # Création d'une variable que nous utiliserons # pour exécuter la boucle while run = True # Création d'une boucle while while run : # Itération sur tous les événements reçus de pygame.event.get() # pygame.event.get() for event in pygame.event.get() : # Si le type de l'événement est quit # alors la variable run est réglée sur false if event.type == QUIT : run = False # Si le type de l'événement est MOUSEBUTTONDOWN # stocker la position actuelle elif event.type == MOUSEBUTTONDOWN : position = event.pos circle_positions.append(position) # Utilisation d'une boucle for pour itérer # sur la liste circle_positions # sur la liste circle_positions for position in circle_positions : # Dessiner le cercle pygame.draw.circle(ecran, color, position, rayon_cercle) # Dessine l'objet surface à l'écran. pygame.display.update()