01 Einstieg in Python mit PyGame

Einstieg in das Thema

Was braucht man an Vorwissen?

Die Grundlagen von Python solltest du beherrschen.

Weiterhin ist es ganz gut, wenn du schon mal etwas von Winkelfunktionen gehört hast.

Worum geht es?

Dein Wissen zu Python sollte etwas vertieft werden, es gibt verschiedene Möglichkeiten. PyGame ist vielleicht die unterhaltsamste, weil - wie der Name schon sagt - PyGame primär für Spiele gedacht ist.

Was ist das Ziel?

Der erste Schritt besteht darin, die Grundstruktur von PyGame-Programmen zu verstehen.

Erarbeitung

Theorie

Aufgaben

Das im Video beschriebene Programm findest du ab01_einstieg.py. Speichere es bei dir im Home-Verzeichnis.

Aufgabe 1
Ändere die Farbe des Balls auf grün. Was musst du tun?
Aufgabe 2
Ändere die Größe des Fensters auf 800x600. Was musst du tun?
Aufgabe 3
Ändere die Farbe des Balls. Was musst du tun?

Für die folgenden Dinge brauchen ein wenig Vorarbeit. Füge folgenden Block nachder Definion der Farben RED und WHITE ein.

ball_x = WIDTH // 2 ball_y = HEIGHT // 2 ball_radius = 30

Ersetze die Zeile

pygame.draw.circle(screen, RED, (WIDTH // 2, HEIGHT // 2), 50)

durch die Zeile

pygame.draw.circle(screen, RED, (ball_x, ball_y), ball_radius)

Teste danach. Das Programm müsste starten, also keine Fehlermeldung zeigen und der rote Kreis ist zu sehen.

Du weißt, dass auf Ereignisse reagiert werden muss. Wir fügen ein neues Ereignis hinzu. In der Schleife nach der Behandlung des Quit-Ereignisses kommt ein weiteres Ereignis hinzu:

if event.type == pygame.MOUSEBUTTONDOWN: # Linke Maustaste ist button 1 if event.button == 1: ball_x, ball_y = event.pos

Starte das Programm.

Aufgabe 4
Was passiert, wenn man in das Fenster klickt?
Aufgabe 5
Wann wird das Ereignis ausgelöst?
Aufgabe 6
Kennst du ein solches Ereignis von anderen Sprachen oder Programmierumgebungen?
Aufgabe 7
Was macht eigentlich diese "komische Division" mit // ? Wie unterscheidet sich diese von / ?

Ersetze nun die Zeilen zu MOUSEBUTTONDOWN durch

if event.type == pygame.MOUSEMOTION: # event.pos ist ein Tupel (x, y) ball_x, ball_y = event.pos
Aufgabe 8
Was ist nun anders?
Aufgabe 9
Wann wird das Ereignis ausgelöst?

Zusammenfassung

Was muss man wissen / können?

Du weißt nun, wie ein PyGame-Programm aufgebaut ist und kennst auch schon die ersten Ereignisse.

Wie geht es weiter?

Weiter