Appearance
3 — Schläger bewegen
Nun sollen die Schläger bewegt werden können. Der linke Schläger soll mit den Tasten Q und A nach oben und unten bewegt werden können.
Programmstruktur
Zunächst definieren wir das Unterprogramm bewege_schläger, welches die Aufgabe hat, die Schläger zu bewegen. Dieses Unterprogramm rufen wir im Unterprogramm update auf:
python
def schläger_bewegen():
# Hier werden die Schläger bewegt
def update():
schläger_bewegen()Wir könnten die Bewegung der Schläger auch direkt im Unterprogramm update programmieren, aber mit der Zeit würde das zu unübersichtlich. Wenn wir für jede Aufgabe ein eigenes Unterprogramm definieren, bleibt unser Programm besser verständlich.
Bedingte Anweisung
Nun können wir eine bedingte Anweisung einbauen. Das ist eine Anweisung, welche nur unter einer bestimmten Bedingung ausgeführt wird.
Wir möchten das folgende in Python ausdrücken:
«Wenn die Taste Q gedrückt wird, bewegt sich der linke Schläger nach oben.»
Wir können «die Taste Q ist gedrückt» in Pygame Turbo so schreiben:
python
keyboard[keys.Q]Eine Liste aller Tasten finden Sie hier: Pygame Turbo: Tastatur.
Die Aussage «der linke Schläger bewegt sich nach oben» können wir auch mit Hilfe von Koordinaten ausdrücken:
«Wir subtrahieren 5 von der y-Koordinate des linken Schlägers.»
In Python können wir das so schreiben:
python
links.y = links.y - 5Nun müssen wir noch die Formulierung «Wenn Bedingung, dann Anweisung» in Python darstellen. Dies geschieht mit einer bedingten Anweisung:
python
if Bedingung:
AnweisungNatürlich ist dies noch nicht richtiger Python-Code. Den erhalten wir, wenn wir die drei Code-Teile zusammensetzen:
python
if keyboard[keys.Q]:
links.y = links.y - 5Im Unterprogramm integriert sieht das so aus:
python
def bewege_schläger():
if keyboard[keys.Q]:
links.y = links.y - 5
def update():
bewege_schläger()✏️ Aufgabe 2
- Bauen Sie die oben stehenden Unterprogramme
bewege_schlägerundupdatein Ihr Programm ein. - Erweitern Sie das Unterprogramm
bewege_schlägerso, dass der linke Schläger mit der TasteAnach unten bewegt wird. - Erweitern Sie das Unterprogramm
bewege_schläger, sodass der rechte Schläger mit den Tasten O und L bewegt werden kann. Alternativ dazu können auch die Pfeiltasten benutzt werden.
Eine Liste aller Tasten finden Sie hier: Pygame Turbo: Tastatur
Mehrere Bedingungen verknüpfen
Nun haben wir noch das Problem, dass die Schläger über den Fensterrand hinaus bewegt werden können. Wir müssen unsere ursprüngliche Formulierung ergänzen:
«Wenn die Taste Q gedrückt wird und sich der linke Schläger noch nicht am oberen Rand befindet, bewegt sich der linke Schläger nach oben.»
Die Formulierung «der linke Schläger befindet sich nicht am oberen Rand» können wir umformulieren zu:
«Der Koordinate des oberen Rand des linkes Schlägers ist grösser als 0.»
In Python sieht das so aus:
python
links.top > 0Zwei Bedingungen können wir in Python mit and verknüpfen. Somit können wir die erweiterte Formulierung so nach Python übersetzen:
python
if keyboard[keys.Q] and links.top > 0:
links.y = links.y - 5✏️ Aufgabe 3
Erweitern Sie Ihr Programm, sodass die Schläger nicht über den Rand hinaus bewegt werden können.