Appearance
4 — Ball bewegen
Als nächstes wollen wir den Ball bewegen. Der Ball startet in der Mitte des Spielfeldes. Das Anspiel soll in beide Richtungen erfolgen. Dabei soll die Richtung des Balls eine zufällige Komponente haben. Am oberen und unteren Rand soll der Ball abprallen.
Programmstruktur
Wir definieren zwei neue Unterprogramme.
Das Unterprogramm anspiel setzt den Ball in die Mitte des Spielfeldes und legt die Richtung des Balls mit einer zufälligen Komponente fest. Wir rufen das Unterprogramm vor dem Start des Programms auf, damit das erste Anspiel stattfindet.
Das Unterprogramm bewege_ball ist für die Bewegung des Balls verantwortlich. Es muss im Unterprogramm update aufgerufen werden.
python
def anspiel(richtung):
# Ball in Mitte platzieren
# Richtung bestimmen
def bewege_ball():
# Ball bewegen
def update():
bewege_schläger()
bewege_ball()
anspiel(1)
pgtrun.go()Anspiel
Beim Anspiel muss die Geschwindigkeit des Balls festgelegt werden. Die horizontale Geschwindigkeit wird durch die Variable richtung vorgegeben. Die vertikale Komponente soll zufällig sein, damit das Spiel interessanter wird.
Um eine zufällige Zahle zu erzeugen, benötigen wir das Paket random. Dieses muss also am Anfang des Programms importiert werden:
python
import randomNun kann eine zufällige Zahl zwischen -2 und 2 mit folgender Funktion erzeugt werden:
python
random.randrange(-2, 2)Wir bauen damit das Unterprogramm anspiel auf:
python
def anspiel(richtung):
# Ball in Mitte platzieren
ball.vx = 4 * richtung
ball.vy = random.randrange(-2, 2)Bewegung
Um den Ball zu bewegen, wird der Ball in x- und y-Richtung um seine Geschwindigkeit verschoben:
python
def bewege_ball():
ball.x = ball.x + ball.vx
ball.y = ball.y + ball.vy✏️ Aufgabe 4
- Erstellen Sie in Ihrem Programm einen Actor
ball. - Erweitern Sie das Unterprogramm
draw, sodass der Ball dargestellt wird. - Fügen Sie das oben stehende Unterprogramm
anspielin Ihr Programm ein. - Erweitern Sie
anspiel, sodass der Ball in der Mitte des Spielfeldes steht. - Fügen Sie das oben stehende Unterprogramm bewege_ball in Ihr Programm ein.