En este artículo vamos a ver cómo dibujar un objeto usando Pygame. Puede haber dos versiones para dibujar cualquier forma, puede ser una sólida o simplemente un contorno de la misma.
Dibujar objetos y formas en PyGame
Puede dibujar fácilmente formas básicas en pygame utilizando el método de dibujo de pygame.
Dibujo Forma de rectángulo:
Para dibujar un rectángulo en su proyecto Pygame, puede usar la función draw.rect().
Sintaxis: pygame.draw.rect(superficie, color, rect, ancho)
Parámetros:
- superficie :- Aquí podemos pasar la superficie sobre la que queremos dibujar nuestro rectángulo. En el ejemplo anterior, creamos un objeto de superficie llamado ‘ventana’.
- color :- Aquí podemos pasar el color de nuestro rectángulo. Estamos usando el color azul en nuestro ejemplo.
- rect :- Aquí podemos pasar el rectángulo, la posición y las dimensiones.
- ancho :- Aquí podemos pasar el grosor de la línea. también podemos crear un rectángulo sólido cambiando el valor de este parámetro de ancho. Así que echemos un vistazo a eso.
Primero, importe el módulo requerido e inicialice pygame. Ahora, cree el objeto de superficie de una dimensión específica usando el método display.set_mode() de pygame. Rellene el fondo del objeto de la superficie con color blanco usando la función fill() de pygame. Crea un rectángulo usando el método draw.rect() de pygame. Actualice el objeto de superficie.
Ejemplo 1: dibujar un rectángulo delineado usando pygame.
Python3
# Importing pygame module import pygame from pygame.locals import * # initiate pygame and give permission # to use pygame's functionality. pygame.init() # create the display surface object # of specific dimension. window = pygame.display.set_mode((600, 600)) # Fill the scree with white color window.fill((255, 255, 255)) # Using draw.rect module of # pygame to draw the outlined rectangle pygame.draw.rect(window, (0, 0, 255), [100, 100, 400, 100], 2) # Draws the surface object to the screen. pygame.display.update()
Producción :
Podemos crear un rectángulo sólido estableciendo el parámetro de ancho igual a 0 y el resto del enfoque sigue siendo el mismo.
Ejemplo 2: Dibujar un rectángulo sólido.
Python3
# Importing pygame module import pygame from pygame.locals import * # initiate pygame and give permission # to use pygame's functionality. pygame.init() # create the display surface object # of specific dimension. window = pygame.display.set_mode((600, 600)) # Fill the scree with white color window.fill((255, 255, 255)) # Using draw.rect module of # pygame to draw the solid rectangle pygame.draw.rect(window, (0, 0, 255), [100, 100, 400, 100], 0) # Draws the surface object to the screen. pygame.display.update()
Producción :
Forma de círculo de dibujo:
Para dibujar un círculo en su proyecto Pygame, puede usar la función draw.circle(). Todo el enfoque es el mismo que el anterior, solo la función y los parámetros se cambian en consecuencia.
Sintaxis: pygame.draw.circle (superficie, color, centro, radio, ancho)
Parámetros:
- superficie :- Aquí podemos pasar la superficie sobre la que queremos dibujar nuestro círculo. En el ejemplo anterior, creamos un objeto de superficie llamado ‘ventana’.
- color :- Aquí podemos pasar el color de nuestro círculo. Estamos usando el color verde en nuestro ejemplo.
- center :- Aquí podemos pasar las coordenadas (x, y) para el centro del círculo.
- radio :- Aquí podemos pasar el radio de nuestro círculo.
- ancho :- Aquí podemos pasar el grosor de la línea. también podemos crear un círculo sólido cambiando el valor de este parámetro de ancho. Así que echemos un vistazo a eso.
Ejemplo 1: Dibujar un círculo hueco.
Python3
# Importing pygame module import pygame from pygame.locals import * # initiate pygame and give permission # to use pygame's functionality. pygame.init() # create the display surface object # of specific dimension. window = pygame.display.set_mode((600, 600)) # Fill the scree with white color window.fill((255, 255, 255)) # Using draw.rect module of # pygame to draw the solid circle pygame.draw.circle(window, (0, 255, 0), [300, 300], 170, 3) # Draws the surface object to the screen. pygame.display.update()
Producción :
Podemos crear un círculo sólido estableciendo el parámetro de ancho igual a 0.
Ejemplo 2: dibujar un círculo sólido
Python3
# Importing pygame module import pygame from pygame.locals import * # initiate pygame and give permission # to use pygame's functionality. pygame.init() # create the display surface object # of specific dimension. window = pygame.display.set_mode((600, 600)) # Fill the scree with white color window.fill((255, 255, 255)) # Using draw.rect module of # pygame to draw the solid circle pygame.draw.circle(window, (0, 255, 0), [300, 300], 170, 0) # Draws the surface object to the screen. pygame.display.update()
Producción :
De manera similar, puede dibujar otras formas básicas utilizando el módulo de dibujo de pygame.
Dibujar forma de polígono:
El polígono deseado se puede dibujar usando la función polígono().
Sintaxis: polígono (superficie, color, puntos, ancho)
Nuevamente, el enfoque sigue siendo el mismo, solo cambian la función y los parámetros.
Ejemplo 1: dibujar un polígono sólido
Python3
# Importing pygame module import pygame from pygame.locals import * # initiate pygame and give permission # to use pygame's functionality. pygame.init() # create the display surface object # of specific dimension. window = pygame.display.set_mode((600, 600)) # Fill the scree with white color window.fill((255, 255, 255)) # Using draw.rect module of # pygame to draw the outlined polygon pygame.draw.polygon(window, (255, 0, 0), [[300, 300], [100, 400], [100, 300]]) # Draws the surface object to the screen. pygame.display.update()
Producción :
Ejemplo 2: dibujar un polígono hueco
Python3
# Importing pygame module import pygame from pygame.locals import * # initiate pygame and give permission # to use pygame's functionality. pygame.init() # create the display surface object # of specific dimension. window = pygame.display.set_mode((600, 600)) # Fill the scree with white color window.fill((255, 255, 255)) # Using draw.rect module of # pygame to draw the outlined polygon pygame.draw.polygon(window, (255, 0, 0), [[300, 300], [100, 400], [100, 300]], 5) # Draws the surface object to the screen. pygame.display.update()
Producción:
Forma de línea de dibujo:
Una línea es la entidad de dibujo más básica y se puede dibujar en pygame usando la función line().
Sintaxis: pygame.draw.line (superficie, color, start_pos, end_pos, ancho)
Ejemplo 1: dibujar una línea
Python3
# Importing pygame module import pygame from pygame.locals import * # initiate pygame and give permission # to use pygame's functionality. pygame.init() # create the display surface object # of specific dimension. window = pygame.display.set_mode((600, 600)) # Fill the scree with white color window.fill((255, 255, 255)) # Using draw.rect module of # pygame to draw the line pygame.draw.line(window, (0, 0, 0), [100, 300], [500, 300], 5) # Draws the surface object to the screen. pygame.display.update()
Producción:
Dibuja múltiples formas:
Puede dibujar varias formas en el mismo objeto de superficie. Para eso, se importan los primeros módulos requeridos y se inicializa pygame. Ahora, cree el objeto de superficie de una dimensión específica usando el método display.set_mode() de pygame. Rellene el fondo del objeto de la superficie con color blanco usando la función fill() de pygame. Cree las formas requeridas que se describen arriba. Actualizar el objeto de superficie
Ejemplo 1: Dibujar un círculo dentro de un rectángulo.
Python3
# Importing pygame module import pygame from pygame.locals import * # initiate pygame and give permission # to use pygame's functionality. pygame.init() # create the display surface object # of specific dimension. window = pygame.display.set_mode((600, 600)) # Fill the scree with white color window.fill((255, 255, 255)) # Using draw.rect module of # pygame to draw the rectangle pygame.draw.rect(window, (0, 0, 255), [50, 200, 500, 200]) # Using draw.rect module of # pygame to draw the circle inside the rectangle pygame.draw.circle(window, (0, 255, 0), [300, 300], 100) # Draws the surface object to the screen. pygame.display.update()
Producción:
Ejemplo 2: Dibujar rectángulos uno dentro de otro.
Python3
# Importing pygame module import pygame from pygame.locals import * # initiate pygame and give permission # to use pygame's functionality. pygame.init() # create the display surface object # of specific dimension. window = pygame.display.set_mode((600, 600)) # Fill the scree with white color window.fill((255, 255, 255)) # Creating a list of different rects 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) ] # Creating list of different colors color_list = [(0, 0, 0), (255, 255, 255), (0, 0, 255), (0, 255, 0), (255, 0, 0) ] # Creating a variable which we will use # to iterate over the color_list color_var = 0 # Iterating over the rectangle_list using # for loop for rectangle in rectangle_list: # Drawing the rectangle # using the draw.rect() method pygame.draw.rect(window, color_list[color_var], rectangle) # Increasing the value of color_var # by 1 after every iteration color_var += 1 # Draws the surface object to the screen. pygame.display.update()
Producción :
Escribir sus propias funciones de dibujo:
Puede crear fácilmente sus propias funciones de dibujo especializadas en pygame.
Esto se puede hacer siguiendo el procedimiento dado. Cree una función de dibujo que tomará la posición inicial, el ancho y la altura como parámetros. Dibuje las formas requeridas que se describen arriba. Llame a la función dibujar()
Python3
# Importing pygame module import pygame from pygame.locals import * # Creating Drawing function def drawingfunction(x, y, width, height): # Creating rectangle using the draw.rect() method pygame.draw.rect(window, (0, 0, 255), [x, y, width, height]) # Calculation the center of the circle circle_x = width/2 + x circle_y = height/2 + y # Calculating the radius of the circle if height < width: radius = height/2 else: radius = width/2 # Drawing the circle pygame.draw.circle(window, (0, 255, 0), [circle_x, circle_y], radius) # initiate pygame and give permission # to use pygame's functionality. pygame.init() # create the display surface object # of specific dimension. window = pygame.display.set_mode((600, 600)) # Fill the scree with white color window.fill((255, 255, 255)) # Calling the drawing function drawingfunction(50, 200, 500, 200) # Draws the surface object to the screen. pygame.display.update()
Producción:
Dibujar formas con el ratón:
Ahora veamos cómo podemos crear formas cada vez que el usuario hace clic con el mouse. Vamos a crear círculos en el siguiente ejemplo, pero puede crear cualquier forma que desee.
Cree una lista para almacenar la posición de la forma que se va a dibujar. Cree una variable para almacenar el color de la forma. Cree una variable que usaremos para ejecutar el bucle while y Crear un bucle while. Iterar sobre todos los eventos recibidos de pygame.event.get(). Si el tipo de evento se cierra, se establece la variable de ejecución en falso. Si el tipo de evento es MOUSEBUTTONDOWN (este evento ocurre cuando un usuario presiona el botón del mouse), entonces obtiene la posición actual en una variable y luego agrega esa posición en nuestra lista de posiciones_del_círculo. Iterar sobre todas las posiciones de la array creada usando un bucle for a. Sigue dibujando la forma. Actualice el objeto de superficie.
Python3
# Importing pygame module import pygame from pygame.locals import * # initiate pygame and give permission # to use pygame's functionality. pygame.init() # create the display surface object # of specific dimension. window = pygame.display.set_mode((600, 600)) # Fill the scree with white color window.fill((255, 255, 255)) # creating list in which we will store # the position of the circle circle_positions = [] # radius of the circle circle_radius = 60 # Color of the circle color = (0, 0, 255) # Creating a variable which we will use # to run the while loop run = True # Creating a while loop while run: # Iterating over all the events received from # pygame.event.get() for event in pygame.event.get(): # If the type of the event is quit # then setting the run variable to false if event.type == QUIT: run = False # if the type of the event is MOUSEBUTTONDOWN # then storing the current position elif event.type == MOUSEBUTTONDOWN: position = event.pos circle_positions.append(position) # Using for loop to iterate # over the circle_positions # list for position in circle_positions: # Drawing the circle pygame.draw.circle(window, color, position, circle_radius) # Draws the surface object to the screen. pygame.display.update()
Producción:
Publicación traducida automáticamente
Artículo escrito por imranalam21510 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA