Pong in Python mit PyGame

Dieser Beitrag erklärt Schritt für Schritt die Vorangehensweise um ein Pong Spiel mit Python zu entwickeln.

Benötigt wird die Bibliothek pygame, welche mit pip installiert werden kann.

Als erstes muss das entsprechende Modul importiert werden. Zusätzlich wird math zur Berechnung und random benötigt

Nun wird pygame initialisiert und eine clock erstellt, welches die Bildwiederholfrequenz des Spiels steuert und die Bewegung des Puks.

Als nächstes ist es Zeit ein Spielfenster zu erstellen. Alternativ kann der Titel des Fensters definiert werden. In diesem Falle hat das Fenster eine Größe von 1280×720 und den Titel PyPong 2.0

Eine GameLoop ist essentiell. Sie kann folgendermaßen erstellt werden.

In der GameLoop werden nun die FPS definiert und alle Objekte im Spiel aktualisiert. Dies sollte dazu führen, dass das Fenster nicht unmittelbar nach dem Starten des Programms abbricht und das man Objekte visuell darstellen kann.

WHITE stellt in diesem Falle die Farbe Weiß da. Folgende Farben werden im Laufe noch benötigt (RGB Format)

Nun müssen nach und nach relevante Events initialisiert werden. Zum Beispiel, ob der Benutzer das Spiel beenden möchte

Weitere Events werden noch folgen.

Es ist Zeit, die Paddles zu erstellen. Jedes Paddle besitzt eine X und Y Position, wobei die X Position optional durch eine allgemeine Konstante ersetzt werden kann, da diese absolut ist und nicht vom Benutzer verändert werden kann. height kann ebenfalls durch eine Konstante ersetzt werden. Zudem besitzt jedes Paddle für X und Y eine Variable, welche definiert, ob sich das Paddle bewegen kann (Ansonsten könne das Paddle aus dem Fenster raus bewegt werden) Der MovementFactor legt fest, wie schnell sich das Paddle bewegt.

Um das Paddle steuern zu können, wird eine InputMap benötigt. Diese speichert die momentan gedrückten Tasten. (W, S, UP, DOWN)

Mit Events werden die entsprechenden Inputs des Benutzers erfasst und in der InputMap gespeichert

Nun müssen die Paddles nur noch basierend auf den UserInput bewegt werden. Es muss zusätzlich noch überprüft werden, dass die Paddles sich nicht außerhalb des Spielfelds bewegen werden können

Nun ist es Zeit den Puck zu erstellen. Der Puck besitzt eine X und Y Position und einen MovementFactor

Um den Puck zum bewegen zu bringen, muss eine Richtung bestimmt werden und die X, sowohl als auch die Y-Position durch eine lineare Funktion aktualisiert werden.

Jetzt muss noch die Kollision des Pucks berechnet werden

Damit wäre das Pong Spiel fast fertig. Es muss nur noch überprüft werden, ob ein Spieler einen Punkt erziehlt hat

Der Score wird zuguterletzt noch auf dem Display angezeigt

Source code: https://github.com/IntenceYT/PyPong/