Appearance
2 — Objekte
Dinge, welche wir auf dem Fenster darstellen und bewegen wollen, werden im Programmcode als sogenannte Objekte bezeichnet.
In Python können viele unterschiedliche Arten von Objekten erstellt und verwendet werden. Wir verwenden zunächst Actor-Objekte. Diese repräsentieren eine Pixelgrafik, welche im Fenster dargestellt werden kann.
Erzeugen
Zuerst müssen wir mit dem Befehl Actorein Objekt erstellen und einer Variablen zuweisen:
python
figur = Actor("figur_01.png")In den Klammern wird der Name der Bilddatei angegeben. Sie muss sich im Unterordner images befinden.
In der Projektvorlage sind die Bilder figur_01.png bis figur_12.png vorhanden.
Darstellen
Damit die Figur auch dargestellt wird, muss sie im Unterprogramm draw gezeichnet werden. Dazu wird dem figur-Objekt der Befehl draw() gegeben. Das geschieht mit folgendem Code:
python
figur.draw()Diese Zeile bedeutet, dass das Unterprogramm draw des Objekts figur ausgeführt wird. Der Punkt bedeutet somit «von Objekt» und die Klammern bedeuten «ausführen».
Die Zeile muss im Unterprogramm draw eingefügt werden, und zwar nach dem Befehl, welcher das ganze Fenster füllt. Sonst ist die Figur nicht sichtbar
python
def draw():
screen.fill(hintergrundfarbe)
figur.draw()Positionieren
Die Position eines Objekts wird durch Variablen des Objekts bestimmt. Variablen eines Objekts werden auch Attribute genannt. Um auf ein Attribut zuzugreifen, verwenden wir wieder den Punkt. Um das Attribut x des Objekts figur zu ändern, schreiben wir:
python
figur.x = 200Die folgende Tabelle zeigt die wichtigsten Attribute der Actor-Objekte:
| Name | Bedeutung |
|---|---|
figur.x | x-Koordinate Mitte |
figur.y | y-Koordinate Mitte |
Koordinatensystem
In Pygame Turbo wird ein in der Informatik übliches Koordinatensystem verwendet. Dabei ist der Ursprung in der linken oberen Ecke. Die x-Achse zeigt nach rechts, die y-Achse nach unten. Die Koordinaten werden in Pixel angegeben.
Die folgende Illustration veranschaulicht das Koordinatensystem und die Positionierungsmöglichkeiten von Aktoren:

Rechnen
Die Werte für die Koordinaten müssen nicht als fixe Zahl angegeben werden, sie können auch berechnet werden. In Python werden die Grundrechenoperationen so geschrieben:
| Operation | Mathematisch | Python |
|---|---|---|
| Addition | a+b | a + b |
| Subtraktion | a−b | a - b |
| Multiplikation | a⋅b | a * b |
| Division | a:b | a / b |
| Potenz | ab | a ** b |
Ausserdem können vorhandene Variablen wie HEIGHT oder figur.x für die Berechnung verwendet werden.
Beispiel: Positioniere figur in halber Höhe des Fensters:
python
figur.y = HEIGHT / 2Beispiel: Positioniere figur doppelt soweit vom oberen Rand wie vom linken Rand:
python
figur.x = 50
figur.y = 2 * figur.xVollständiges Beispiel:
python
# Hack: Fenster positionieren
import os
os.environ["SDL_VIDEO_WINDOW_POS"] = "100, 50"
import pgtrun
def draw():
screen.fill(hintergrundfarbe)
figur.draw()
WIDTH = 800
HEIGHT = 600
TITLE = "Mein tolles Game"
hintergrundfarbe = 11, 102, 35
figur = Actor("figur_01.png")
# Positioniere Figur in der Mitte des Fensters
figur.x = WIDTH / 2
figur.y = HEIGHT / 2
pgtrun.go()✏️ Aufgabe 2.1
Fügen Sie drei weitere Figuren in das Programm ein und positionieren Sie diese folgendermassen:
- die erste Figur am oberen Rand in der Mitte,
- die zweite Figur am rechten Rand in der Mitte,
- die dritte direkt links davon,
- die vierte Figur Fisch in der Mitte des unteren linken Viertels.
Sie können die Grafiken figur_01.png bis figur_12.png verwenden.
Das sollte etwa so aussehen:

✏️ Aufgabe 2.2
Verteilen Sie die vier Figuren in regelmässigen Abständen auf einer horizontalen Linie.

⭐️ Zusatzaufgabe 2.3
Erstellen Sie eine eigene Figur.
- Suchen Sie nach einer geeigneten Grafik.
- Öffnen Sie die Grafik in Affinity Photo.
- Entfernen Sie den Hintergrund
- Exportieren Sie die Figur als PNG-Datei mit einer Höhe von 128 Pixeln.
- Kopieren Sie die PNG-Datei in den
images-Unterordner im Programmieren-Ordner.
Achtung: Der Dateiname darf ausschliesslich aus Kleinbuchstaben, dem Unterstrich _ und Zahlen bestehen.