Zeichne einen Kreis in Pygame
In diesem Tutorial lernen Sie, wie Sie Kreise in Pygame zeichnen.
Der hier angezeigte Code ist nicht der vollständige Code für ein gültiges Pygame-Fenster. Wenn Sie an einem Bare-Bones-Framework interessiert sind, lesen Sie diesen Artikel.
Zeichne einen Kreis in Pygame
Um einen Kreis zu zeichnen, brauchen wir nur die Methode pygame.draw.circle
, die die folgenden Argumente liefert: Surface
, Color
, Center
, Radius
. Der erste ist nur die Oberfläche, auf der wir ihn zeichnen möchten.
Wir zeichnen es in unserem Beispiel auf dem Bildschirm, aber wir können jede Oberfläche verwenden. Dann definieren wir die Farbe auf RGB-Weise mit einem Array.
Wir fahren fort, indem wir die Position des Kreismittelpunkts auf der zuvor erwähnten Fläche definieren. Zu guter Letzt definieren wir den Radius.
Denken Sie daran, dass dieser Code in der Hauptschleife unseres Spiels ausgeführt wird.
Code-Auszug:
pygame.draw.circle(
screen, # Surface to draw on
[100, 100, 100], # Color in RGB Fashion
[100, 100], # Center
20, # Radius
)
Ausgang:
Zeichne einen Halbkreis in Pygame
Vielleicht möchten Sie einen Halbkreis machen. Wir können dies auch mit der Methode pygame.draw.circle
tun.
Wir müssen nur weitere Argumente angeben, nämlich: draw_top_right
, draw_top_left
, draw_bottom_left
, draw_bottom_right
. Wie ihr Name schon sagt, definieren sie, ob dieses Viertel gezogen wird oder nicht.
Deshalb arbeiten wir hier mit Booleschen Werten. Wenn wir eine davon als true
definieren, werden die anderen nicht gezeichnet, aber wir können mehrere Ecken gleichzeitig definieren.
Der folgende Code zeichnet den oberen Teil des Kreises.
Code-Auszug:
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,
)
Ausgang:
Vollständiger Beispielcode
# 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