Dibujar un círculo en Pygame
Este tutorial te enseña a dibujar círculos en Pygame.
El código que se muestra aquí no es el código completo para una ventana de Pygame válida. Si está interesado en un marco básico, consulte este artículo.
Dibujar un círculo en Pygame
Para dibujar un círculo, solo necesitamos el método pygame.draw.circle
, que proporcionará los siguientes argumentos: Superficie
, Color
, Centro
, Radio
. El primero es solo la superficie en la que queremos dibujarlo.
Lo dibujamos en la pantalla en nuestro ejemplo, pero podemos usar cualquier superficie. Luego, definimos el color de forma RGB con una matriz.
Continuamos definiendo la posición del centro del círculo en la superficie mencionada anteriormente. Por último, pero no menos importante, definimos el radio.
Tenga en cuenta que este código se ejecuta en el bucle principal de nuestro juego.
Fragmento de código:
pygame.draw.circle(
screen, # Surface to draw on
[100, 100, 100], # Color in RGB Fashion
[100, 100], # Center
20, # Radius
)
Producción:
Dibujar un semicírculo en Pygame
Tal vez quieras hacer un semicírculo. También podemos hacer esto con el método pygame.draw.circle
.
Solo necesitamos proporcionar más argumentos, que son: dibujar_arriba_derecha
, dibujar_arriba_izquierda
, dibujar_abajo_izquierda
, dibujar_abajo_derecha
. Como su nombre indica, definen si este trimestre se sorteará o no.
Es por eso que aquí trabajamos con booleanos. Cuando definimos uno de ellos como true
, los demás no se dibujarán, pero podemos definir múltiples esquinas simultáneamente.
El siguiente código dibujará la parte superior del círculo.
Fragmento de código:
pygame.draw.circle(
screen, # Surface to draw on
[100, 100, 100], # Color in RGB Fashion
[100, 100], # Center
20, # Radius
draw_top_right=True,
draw_top_left=True,
)
Producción:
Código de ejemplo completo
# Imports
import sys
import pygame
# Configuration
pygame.init()
fps = 60
fpsClock = pygame.time.Clock()
width, height = 640, 480
screen = pygame.display.set_mode((width, height))
# Game loop.
while True:
screen.fill((20, 20, 20))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
pygame.draw.circle(
screen, # Surface to draw on
[100, 100, 100], # Color in RGB Fashion
[100, 100], # Center
20, # Radius
draw_top_right=True,
draw_top_left=True,
)
pygame.display.flip()
fpsClock.tick(fps)
Hi, my name is Maxim Maeder, I am a young programming enthusiast looking to have fun coding and teaching you some things about programming.
GitHub