Der Code ohne Kommentar
import pgzrun

WIDTH, HEIGHT = 500, 700


class Schiff(Actor):
    def __init__(self):
        Actor.__init__(self, 'schiff')
        self.bottom = HEIGHT
        self.centerx = WIDTH / 2
        self.geschwindigkeit = 6

    def aktualisiere(self):
        if keyboard.left:
            self.x -= self.geschwindigkeit
        if keyboard.right:
            self.x += self.geschwindigkeit
        self.clamp_ip(0, 0, WIDTH, HEIGHT)

schiff = Schiff()

def update():
    schiff.aktualisiere()

def draw():
    screen.fill((255, 255, 255))
    schiff.draw()

pgzrun.go( )
 
Der Code mit Kommentar
import pgzrun

# Breite und Höhe des Programmfensters:
WIDTH, HEIGHT = 500, 700

# Unser Schiff erweitert die Klasse Actor:
class Schiff(Actor):
    def __init__(self):
        # Hier wird der Konstruktor der Klasse Actor aufgerufen.
        # Er erwartet als zweites Argument den Namen einer Bilddatei,
        # die im Ordner "images" liegen muss - die Endung lassen wir dabei weg:
        Actor.__init__(self, 'schiff')
        # Die Unterkante des Schiffes auf die Unterkante des Programmfensters liegen:
        self.bottom = HEIGHT
        # Die waagerechte Mitte (centerx) des Schiffes soll auf der waagerechten Mitte 
        # des Programmfensters liegen:
        self.centerx = WIDTH / 2
        # Um wie viele Pixel kann sich das Schiff maximal bewegen pro Zeitschritt / Bild:
        self.geschwindigkeit = 6

    # Diese Funktion wird jedes mal aufgerufen, wenn ein neuer Zeitschritt / ein
    # neues Bild berechnet wird:
    def aktualisiere(self):
        # Wenn der Links- oder Rechtspfeil gedrückt ist, dann soll das Schiff um
        # einige Pixel nach rechts oder links verschoben werden:
        if keyboard.left:
            self.x -= self.geschwindigkeit
        if keyboard.right:
            self.x += self.geschwindigkeit
        # Dieser Code sorgt dafür, dass das Schiff nicht den Bildschirm verlassen kann:
        self.clamp_ip(0, 0, WIDTH, HEIGHT)

# Ein neues Schiff erzeugen:
schiff = Schiff()

# Diese Funktion ruft Pygame Zero selbst auf, wenn ein neues Bild berechnet wird:
def update():
    schiff.aktualisiere()

# Diese Funktion ruft Pygame Zero selbst auf, wenn ein neues Bild gezeichnet wird:
def draw():
    screen.fill((255, 255, 255))
    schiff.draw()

# Pygame Zero starten:
pgzrun.go( )
Zuletzt geändert: Donnerstag, 20. Februar 2025, 13:36