Skip to content

Spielfigur/Actor

ProgrammierenPygame Zero

Pygame Zero bietet die Möglichkeit, Bilder als Spielfiguren (Actor) zu verwenden:

Actor hinzufügen

Wir wollen einen sogenannten Actor einbauen. Wie der Name es sagt – ein Schauspieler. Beim Actor handelt es sich sozusagen um eine Spielfigur, die wir dann verschieben und verwenden können. Der Actor wird mit Hilfe einer PNG-Bilddatei dargestellt.

Aufgabe: Bilder

Zuerst müssen wir aber die Bilder an der richtigen Stelle abspeichern:

  • gehe in den Ordner wo dein Python-Skript liegt
  • erstelle einen Unterordner images
  • speichere die folgenden Alien-Bilder dort drin ab
alien_beige.png
alien_blue.png
alien_green.png
alien_pink.png
alien_yellow.png

Wir hängen vor das pgzrun.go() den folgenden Code an:

python
...
zorg = Actor('alien_pink')
zorg.pos = (100, 100)

Damit haben wir einen sogenannten Actor definiert:

Zeile 2
Erstellt einen Actor aus dem Bild alien_pink.png (muss im Unterordner images liegen) und weist dem neuen Actor den Namen zorg zu, damit wir ihn später wieder ansprechen können.
Zeile 3
Da zorg ein Actor ist, hat er auch eine Position. Wir setzen seine Koordinaten auf die Mitte des Fensters.

Spiel zeichnen

Wenn wir das Programm starten, ändert sich aber nichts – das Fenster bleibt immer noch schwarz. Dies ist deshalb so, weil Pygame Zero zum Zeichnen des Fensterinhaltes ein spezielles Unterprogramm aufruft, nämlich draw(). Dieses Unterprogramm muss sämtlichen Fensterinhalt zeichnen und von uns definiert werden. Wir fügen das folgende Unterprogramm vor der letzte Zeile in unseren Code ein:

python
def draw():
	zorg.draw()
Zeile 1
Mit def geben wir an, dass wir ein Unterprogramm definieren wollen.
draw soll der Name des Unterprogramms sein. Sonst kann Pygame Zero das Unterprogramm gar nicht aufrufen
mit der Klammer () wird gesagt dass der Name draw für ein Unterprogramm steht und mit dem Doppelpunkt : wird der Inhalt des Unterprogramms eingeleitet
Zeile 2
zeichnet unseren Actor
(ist eingerückt und gehört deshalb zum Inhalt des Unterprogramms)

Aufgabe: Actor

Baue den Actor in dein Programm ein und teste das Programm. Das Programm sollte wie folgt aussehen:

Screenshot
Lösung: Actor
python
import pgzrun

TITLE = "Erstes Programm"
WIDTH = 200
HEIGHT = 200

zorg = Actor('alien_pink')
zorg.pos = (100, 100)

def draw():
	zorg.draw()

pgzrun.go()

Aufgabe: Änderungen

Versuche die folgenden Änderungen am Programm vorzunehmen:

  • Vergrössere das Pygame Zero-Fenster, so dass es einigermassen den Bildschirm füllt.
  • Füge ein weiteres «Alien» hinzu. Gib ihm aber einen anderen Namen und natürlich andere Koordinaten!

Zusatzaufgabe: Hintergrund

Nimm das folgende Bild und füge es als weiteren Actor im Hintergrund hinzu.

bg_grasslands.png

Falls das Bild nicht den gesamten Hintergrund bedeckt, kannst du es verdoppeln oder das Fenster oben und unten in den korrekten Farben füllen:

👉 Zeichnen

Alternativ vergrösserst du das Bild in einem Grafik-Programm.

Zusatzaufgabe: dritter Actor

Füge einen dritten Actor hinzu. Suche dazu ein passendes Bild, z.B. von https://www.kenney.nl/assets?q=2d.
Das Bild muss im PNG-Format vorhanden sein und in den images-Unterordner relativ zum Python-Skript abgespeichert werden.

Gymnasium Kirchenfeld, fts