Skip to content

Zeichnen

ProgrammierenPygame Zero

Mit Hilfe des Screen-Objekts können Bilder und geometrische Figuren gezeichnet werden:

Farben definieren

Farben müssen in Pygame Zero selbst gemischt werden. Dabei werden die 3 Grundfarben Rot, Grün und Blau des additiven Farbmodells in Anteilen von 0-255 gemischt.

Das Ganze wird als Tripel (Folge von 3 Zahlen) geschrieben. Die erste Zahl bestimmt den Rot-, die Zweite den Grün- und die Dritte den Blau-Anteil. Am Besten definiert man die Farben gleich zu Beginn des Programms als Konstante und gibt ihnen einen aussagekräftigen Namen:

python
WHITE = (255,255,255)
BLACK = (0,0,0)
ORANGE = (255,165,0)
MINT_CREAM = (245,255,250)

Hier kannst du dir eine Farbe mischen:

Schreibweisen:
html: #ffffff, rgb(255, 255, 255)
python: (255, 255, 255)

Auch online findet man diverse Tools, wo man Farben interaktiv mischen kann und die RGB-Werte als Ergebnis mit Copy & Paste in den Code übernehmen kann.
z.B. https://www.rapidtables.com/web/color/RGB_Color.html

Eine Farbe wird in den folgenden Aufrufen als rgb dargestellt.

Löschen und Füllen

Setzt alles auf Schwarz:

python
screen.clear()

Füllt alles mit der Farbe rgb:

python
screen.fill(rgb)
python
screen.fill(MINT_CREAM)
python
screen.fill((255,165,0))

Geometrische Objekte zeichnen

Mit screen.draw stehen einige Unterprogramme zur Verfügung, die einfache geometrische Figuren auf den Bildschirm zeichnen.

Linie

Zeichnet eine Linie vom Start-Punkt zum Endpunkt:

python
screen.draw.line(start, end, rgb)
python
screen.draw.line((200, 100), (400, 12), BLACK)

Kreis

Zeichnet ein Kreislinie:

python
screen.draw.circle(pos, radius, rgb)
python
screen.draw.circle((200, 100), 60, BLACK)

Zeichnet einen gefüllten Kreis:

python
screen.draw.filled_circle(pos, radius, rgb)
python
screen.draw.filled_circle((200, 100), 60, ORANGE)

Rechteck

Zeichnet ein Rechteck. Die Dimensionen müssen als Rect definiert werden:

python
screen.draw.rect(Rect, rgb)
python
BOX = Rect((20, 20), (100, 100))
screen.draw.rect(BOX, BLACK)

Zeichnet ein gefülltes Rechteck:

python
screen.draw.filled_rect(Rect, rgb)
python
screen.draw.filled_rect(Rect((20, 20), (100, 100)), ORANGE)

Text

Zeichnet einen Text an eine bestimmte Position:

python
screen.draw.text(text, pos, color=rgb)
python
screen.draw.text("hello pygame zero", (150, 10), color=BLACK)

Gymnasium Kirchenfeld, fts