Try   HackMD

Spiele programmieren in Python

Erste Schritte in Pygame Zero

Installation und Setup

Erste Schritte auf replit.com (Web-Editor)

Alle Übungen kannst du mit replit.com bearbeiten. Ein eine leere Pygame Template erhällst du über folgenden Link: https://replit.com/new/pygame oder du wählst "Pygame als Template auf der Seite replit.com aus.

Wir verwenden Pygame Zero eine vereinfachte Version von Pygame. Damit ein Pygame Zero Programm auf Replit.com startet, musst du folgende Codezeilen ergänzen: Am Anfang:

import pgzrun

Am Ende:

pgzrun.go()

Erste Schritte am Desktop

Möchtest du lieber eine Desktop-Anwendung zum Programmieren verwenden. Findest du hier entsprechende Anleitungen zur Installation von Pygame am Desktop.

Zusätzliche Datein

Für das Einstiegsprojekt brauchen wir einige Graphiken zusätzlich. Diese liegen in der Datei images.zip, die Du hier herunterladen kannst – oder vielleicht schon heruntergeladen hast.

Leeres Fenster erzeugen

https://www.inf-schule.de/oop/spiele-python/erste-programme/leeres-fenster

Hintergrundfarbe

https://www.inf-schule.de/oop/spiele-python/erste-programme/hintergrundfarbe

Hintergrundbilder

https://www.inf-schule.de/oop/spiele-python/erste-programme/hintergrund-bilder

Eine Spielfigur hinzufügen

https://www.inf-schule.de/oop/spiele-python/spielfiguren-als-objekte/spielfigur

Spielfiguren platzieren

https://www.inf-schule.de/oop/spiele-python/spielfiguren-als-objekte/spielfiguren-platzieren

Fachkonzept: Objekte, Attribute, Methoden, Klassen und Konstruktor

https://www.inf-schule.de/oop/spiele-python/spielfiguren-als-objekte/fk-attribut-klasse-konstruktor

Spielfiguren bewegen

https://pygame-zero.readthedocs.io/de/latest/introduction.html#figuren-bewegen

def update(): raumschiff.x += 2 if raumschiff.x > WIDTH: raumschiff.x = 0

Keyboard Eingaben verwenden

https://pygame-zero.readthedocs.io/de/latest/builtins.html#the-keyboard

def update(): raumschiff.x += 2 if raumschiff.x > WIDTH: raumschiff.x = 0 if keyboard.y or keyboard.down: raumschiff.y += PLAYER_SPEED elif keyboard.a or keyboard.up: raumschiff.y -= PLAYER_SPEED

Ausrichtung einer Spielfigur

https://www.inf-schule.de/oop/spiele-python/spielfiguren-als-objekte/ausrichtung

Musterlösung:

https://replit.com/@MarcSiemering2/2022-06-16-Raumschifflive

Aufgabe

  1. Verändere den Code so, dass sich beim Drücken der Pfeiltaste nach rechts das Raumschiff im Uhrzeigersinn dreht und beim Drücken der Pfeiltaste nach links gegen den Uhrzeigersinn.
  2. Verändere das Programm so, dass das Raumschiff immer "geradeaus" ausfliegt. Also, wenn es gedreht wird, dass es dann auch in diese Richtung fliegt.

1. Tipp: Dafür benötigst du die Sinus- und Cosinus-Funktion.

Sinus und Cosinus Grafik
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Quelle: https://de.wikipedia.org/wiki/Sinus_und_Kosinus

Um in Python mit der Sinus- und Cosinus-Funktion zu arbeiten benötigst du das Packet math. Um dieses Packet zu verwenden musst du es zunächst importieren.

import math

Die offizielle Dokumentation zum math Packet findest du hier: https://docs.python.org/3/library/math.html

2. Tipp: In der offiziellen Dokumentation ist genau definiter, was die Funktion math.sin(x) macht. Lies diese Dokumentation aufmerksam durch. (radians ist das englische Wort für Bogenmaß.)

Zum Weiterlesen und Vertiefen

Hier findest du Links zu interessanten Beispielprojekten mit PyGame Zero:

Quellen

tags: Inf 11 Python OOP