Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Leer más.

PyGame es una biblioteca de desarrollo de juegos poderosa y popular para Python. Proporciona un conjunto de herramientas y funciones que facilitan la creación de juegos y otras aplicaciones interactivas. Una característica útil de PyGame es su capacidad para dibujar objetos y formas.

El módulo pygame.draw

En PyGame, dibujar objetos y formas es un proceso sencillo. Puedes usar el pygame.draw módulo para dibujar formas como rectángulos, círculos, líneas y más.

Antes de comenzar, asegúrese de tener pip instalado en su dispositivo, luego use este comando para instalar el PyGame módulo:

pip instalar pygame

Dibujar formas básicas

El pygame.draw El módulo proporciona varias funciones que le permiten dibujar formas básicas. Cada función toma un conjunto de parámetros para definir la forma y su posición.

  • rect(): Puede dibujar un rectángulo usando esta función. Esta es una de las formas más utilizadas en los juegos. Puede crear plataformas, paredes y otros objetos con rectángulos. La función toma cuatro parámetros: superficie (la superficie para dibujar el rectángulo), color, rect (un objeto Rect) y ancho (grosor de línea).
    instagram viewer
    pygame.draw.rect (superficie, color, rect, ancho)
  • círculo(): Dibuja un circulo. Toma cuatro parámetros: superficie, color, pos (el centro del círculo) y radio.
    pygame.draw.circle (superficie, color, posición, radio)
  • polígono(): Dibuja un polígono. Toma cuatro parámetros: superficie, color, puntos (una lista de puntos que definen la forma del polígono) y ancho.
    pygame.draw.polygon (superficie, color, puntos, ancho) 
  • línea(): Dibuja una línea. Toma cuatro parámetros: superficie, color, start_pos y end_pos.
    pygame.draw.line (superficie, color, start_pos, end_pos) 

Puede encontrar la lista completa de funciones y sus parámetros en el oficial Documentación de PyGame para el módulo de dibujo.

Dibujar formas complejas

Además de las formas básicas, PyGame también le permite dibujar formas complejas como arcos, elipses y aalines.

  • arco(): Esta función dibuja un arco sobre una superficie. Un arco es una porción de un círculo. Toma seis parámetros: superficie, color, rect, start_angle, end_angle y width. Especifique los ángulos en grados, con 0 grados apuntando hacia la derecha y aumentando en el sentido de las agujas del reloj. El parámetro ancho especifica el grosor del arco.
    pygame.draw.arc (superficie, color, recto, start_angle, end_angle, ancho)
  • elipse(): Dibuja una elipse en una superficie. Una elipse es un círculo estirado. Toma cuatro parámetros: superficie, color, rect y ancho.
    pygame.draw.ellipse (superficie, color, rect, ancho)
  • aalina(): se utiliza para dibujar una sola línea suavizada en una superficie. El suavizado es una técnica utilizada para suavizar los bordes de una forma, de modo que se vea más natural. Se necesitan cuatro parámetros que reflejan el línea() función: superficie, color, start_pos y end_pos.
    pygame.draw.aaline (superficie, color, start_pos, end_pos) 

Crear formas anidadas en PyGame

Otra característica interesante de PyGame es la capacidad de dibujar formas dentro de otra forma. Puede hacerlo usando una combinación de las funciones básicas de dibujo de formas en PyGame.

Para dibujar una forma dentro de otra forma, primero puede dibujar la forma interior y luego dibujar la forma exterior encima de ella. La forma interna puede ser cualquier forma básica, como un rectángulo o un círculo.

Por ejemplo, para dibujar un rectángulo dentro de un círculo, puede usar el pygame.dibujar.circulo() para dibujar el círculo, y luego use el pygame.dibujar.rect() función para dibujar el rectángulo encima de ella.

Puede encontrar los siguientes ejemplos de código en este repositorio de GitHub.

Aquí hay un fragmento de código de ejemplo que demuestra cómo dibujar un rectángulo dentro de un círculo:

importar Pygame

# Inicializar pygame
pygame.init()

# Crear una ventana
ventana = pygame.display.set_mode((800, 600))

# Crea un círculo
circle_rect = pygame.draw.circle (ventana, (255, 255, 255), (400, 300), 100)

# Crea una superficie para el rectángulo
superficie_rectángulo = pygame. Superficie((50, 50))
superficie_rectángulo.set_colorkey((0, 0, 0))

# Dibujar el rectángulo en la superficie
pygame.draw.rect (rectangle_surface, (255, 0, 0), (0, 0, 50, 50))

# Blit la superficie en el círculo
ventana.blit (rectangle_surface, (375, 275))

# Bucle principal
mientrasVerdadero:
# Salir del juego
para evento en pygame.event.get():
si evento.tipo == pygame. ABANDONAR:
pygame.quit()
salida()

# Actualizar la pantalla
pygame.display.update()

Esto crea el efecto de un rectángulo dentro de un círculo. Puede usar esta técnica para crear formas y elementos de juego más complejos combinando varias formas.

Imágenes de dibujo

PyGame también te permite dibujar imágenes. Puedes usar el pygame.image.load() función para cargar una imagen desde un archivo y la pygame.imagen.blit() función a dibujar la imagen en la pantalla.

La sintaxis para pygame.image.load() Se ve como esto:

pygame.image.load (nombre de archivo) 

Y aquí está la sintaxis para pygame.imagen.blit():

pygame.image.blit (imagen, rect) 

Además de cargar y dibujar imágenes, PyGame también proporciona otras funciones relacionadas con imágenes. Estas funciones le permiten manipular imágenes de varias maneras, como escalar, rotar, voltear y recortar.

Adición de funciones avanzadas

PyGame también proporciona algunas funciones avanzadas para dibujar objetos y formas. Por ejemplo, puede utilizar el pygame.mouse.get_pos() función para obtener la posición del ratón y el pygame.mouse.get_pressed() función para obtener el estado del botón del mouse. Con estas funciones, puede crear una función de hacer clic para dibujar que le permite dibujar formas haciendo clic con el mouse.

importar Pygame 

# Inicializar pygame
pygame.init()

# Crear una ventana
ventana = pygame.display.set_mode((800, 600))

# Bucle principal
mientrasVerdadero:
# Obtener la posición del mouse
posición_ratón = pygame.mouse.get_pos()

# Obtener el estado del botón del mouse
ratón_presionado = pygame.mouse.get_pressed()

# Salir del juego
para evento en pygame.event.get():
si evento.tipo == pygame. ABANDONAR:
pygame.quit()
salida()

# Dibujar un círculo cuando se presiona el mouse
si ratón_presionado[0] == 1:
pygame.draw.circle (ventana, (255, 0, 0), posición_ratón, 20)

# Actualizar la pantalla
pygame.display.update()

A continuación se muestra la salida:

Cree fácilmente sprites de juegos en PyGame

PyGame también proporciona un poderoso conjunto de herramientas para crear fácilmente sprites y objetos de juegos. Con el pygame.draw módulo, puede crear fácilmente sprites que puede usar en sus juegos. Puedes crear personajes, objetos y otros elementos del juego con facilidad.