Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Weiterlesen.

Wollten Sie schon immer ein aufregendes Spiel mit Pythons PyGame-Bibliothek erstellen, fühlten sich aber vom Konzept des Zeitmanagements überwältigt? Wenn ja, sind Sie nicht allein.

Zeit ist eine der kritischsten Komponenten der Spieleentwicklung, und es ist wichtig zu verstehen, wie Zeit in PyGame funktioniert, um ansprechende und erfolgreiche Spiele zu erstellen. PyGame bietet mehrere nützliche Funktionen und Module, mit denen Sie die Zeit in Ihren Spielen steuern können.

Erstellen eines einfachen Spiels

Erstellen Sie zunächst ein einfaches Spiel, bei dem sich ein Rechteck nach rechts bewegt. Beginnen, Installieren Sie Pip auf Ihrem Gerät und verwenden Sie den folgenden Befehl, um das PyGame-Modul zu installieren:

pip installiere pygame

Darin finden Sie alle Codebeispiele GitHub-Repository.

Importieren Sie nach der Installation das PyGame-Modul. Erstellen Sie dann einen Bildschirm mit einer Größe von 800 x 600 und einer weißen Hintergrundfarbe und fügen Sie ein rechteckiges Objekt hinzu. Der Code sollte in etwa so aussehen:

instagram viewer

importieren Pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
Hintergrund = Pygame. Oberfläche (screen.get_size())
hintergrund.fill((255, 255, 255))
rect = Pygame. Rechteck(0, 0, 20, 20)

Verwenden Sie danach eine While-Schleife, um das Spiel am Laufen zu halten, und halten Sie das Rect-Objekt nach rechts, bis es das Ende des Bildschirms erreicht.

läuft = WAHR

während Betrieb:
für Fall In pygame.event.get():
Wenn event.type == Pygame. AUFHÖREN:
läuft = FALSCH

Rechteck.x += 1

Wenn rechtw.x > 780:
rechtw.x = 0

screen.blit (Hintergrund, (0, 0))
pygame.draw.rect (Bildschirm, (0, 0, 0), rechteck)
pygame.display.update()

Sie können auch Benutzereingaben hinzufügen und Kollisionen im Spiel. Unten ist die Ausgabe:

Überblick über das Zeitmodul von PyGame

Um die Zeit in diesem Spiel zu steuern, können Sie die verwenden pygame.time Modul. Dieses Modul bietet verschiedene nützliche Funktionen, darunter a Uhr Objekt mit Methoden wie get_ticks(), Warten(), Und Verzögerung(). Mit diesen Funktionen können Sie die Zeit in Ihrem Spiel ganz einfach steuern.

Erstellen eines Uhrenobjekts zum Nachverfolgen der Zeit

In PyGame können Sie ein Clock-Objekt verwenden, um die Zeit zu verfolgen. Um eine Uhr zu erstellen, verwenden Sie einfach die folgende Codezeile:

Uhr = pygame.time. Uhr()

Mit diesem Uhrenobjekt können Sie jetzt die Zeit in Ihrem Spiel verfolgen. Es gibt auch mehrere andere nützliche Funktionen, die mit dem Clock-Objekt verbunden sind, wie zum Beispiel:

  • Zeit bekommen(): Mit Hilfe dieser Funktion können Sie die für jeden Frame des Spiels benötigte Zeit abrufen. Um diese Funktion zu verwenden, fügen Sie einfach die folgende Codezeile nach der While-Schleife hinzu:
    time = clock.get_time()
    Fügen Sie ein Textobjekt hinzu, um die benötigte Zeit anzuzeigen:
    font = pygame.font. SysFont('Arial', 18)
    text = font.render('Dauer: {} ms'.format (Zeit), WAHR, (0, 0, 0))
    screen.blit (Text, (0, 0))
  • Tick(): Verwenden Sie diese Funktion, um die Bildrate des Spiels einzustellen. Standardmäßig ist die Bildrate auf 60 FPS eingestellt. Um es auf 30 FPS einzustellen, fügen Sie einfach die folgende Codezeile hinzu:
    Uhr.Tick (30)
  • get_fps(): Sie können die aktuelle Framerate des Spiels mit get_fps abrufen. Um diese Funktion zu verwenden, fügen Sie einfach die folgende Codezeile hinzu:
    fps = clock.get_fps()
    Sie können ein Textobjekt hinzufügen, um die Framerate anzuzeigen:
    font = pygame.font. SysFont('Arial', 18)
    text = font.render('FPS: {}'.format (fps), WAHR, (0, 0, 0))
    screen.blit (Text, (0, 20))
  • tick_busy_loop(): Mit dieser Funktion können Sie berechnen, wie viele Millisekunden seit dem letzten Aufruf von vergangen sind Tick() Funktion. Um es zu verwenden, fügen Sie einfach die folgende Codezeile hinzu:
    clock.tick_busy_loop(30)

Abrufen der Zeit mit get_ticks

Der get_ticks() Die Funktion gibt die Zeit in Millisekunden seit der Initialisierung von PyGame zurück. Um diese Funktion zu verwenden, fügen Sie die folgende Codezeile hinzu:

time_elapsed = pygame.time.get_ticks()

Fügen Sie ein Textobjekt hinzu, um die benötigte Zeit anzuzeigen:

font = pygame.font. SysFont('Arial', 18)
text = font.render('Vergangene Zeit: {} ms'.format (verstrichene Zeit), WAHR, (0, 0, 0))
screen.blit (Text, (0, 40))

Sie können die verstrichene Zeit verwenden, um zeitbasierte Spielelemente wie Power-Ups zu implementieren, die eine bestimmte Zeit dauern. Beispielsweise können Sie ein Power-Up implementieren, das die Geschwindigkeit des Rect-Objekts für 5 Sekunden erhöht:

Wenn verstrichene Zeit / 5000 > 0:
Rechteck.x += 5

Unten ist die Ausgabe:

Pausieren des Spiels Verwenden der Warte- und Verzögerungsfunktionen

PyGame bietet auch zwei Funktionen, mit denen Sie das Spiel für eine bestimmte Zeit pausieren können: die Warten Funktion und die Verzögerung Funktion.

Um die zu verwenden Warten Funktion, fügen Sie einfach die folgende Codezeile in die While-Schleife ein:

pygame.time.wait(1000)

Dadurch wird das Spiel für 1000 Millisekunden (1 Sekunde) angehalten. Um die zu verwenden Verzögerung Funktion, fügen Sie einfach die folgende Codezeile in die While-Schleife ein:

pygame.time.delay(1000)

Dadurch wird der nächste Frame des Spiels um 1000 Millisekunden (1 Sekunde) verzögert.

Unterschiede zwischen warten und verzögern

Es gibt ein paar Unterschiede zwischen den Warten Und Verzögerung Funktionen. Der Warten Funktion schläft den Prozess, um den Prozessor mit anderen Programmen zu teilen. Der Verzögerung Die Funktion verwendet den Prozessor, um die Verzögerung genauer zu machen. Dies bedeutet, dass die Verzögerung Funktion benötigt mehr Prozessorleistung als die Warten Funktion und eignet sich für Spiele, die ein präzises Timing erfordern.

Erstellen eines Ereignisses mit set_timer

Du kannst den... benutzen set_timer() Funktion zum Erstellen eines Ereignisses, das nach einer bestimmten Zeit ausgelöst wird.

Ereignisse in PyGame sind Objekte, die Informationen über Benutzereingaben oder vom Programm generierte Nachrichten enthalten. Um diese Funktion zu verwenden, erstellen Sie ein benutzerdefiniertes Ereignis und fügen Sie die folgende Codezeile hinzu:

pygame.time.set_timer (CUSTOM_EVENT, 1000)

Dadurch wird ein Ereignis erstellt, das nach 1.000 Millisekunden – 1 Sekunde – ausgelöst wird. Es gibt verschiedene Arten von Ereignissen, die Sie auslösen können, z. B. Mausbewegungen, Tastatureingaben und Fensterereignisse. Ihr Code kann dann so auf diese Ereignisse reagieren, wie es am besten geeignet ist.

Wenn Sie beispielsweise die y-Achse des Rect-Objekts nach 1 Sekunde ändern möchten oder wenn das benutzerdefinierte Ereignis ausgelöst wird, können Sie die folgende Codezeile hinzufügen:

Wenn event.type == CUSTOM_EVENT:
rect.y += 20

Auf diese Weise können Sie ganz einfach zeitbasierte Ereignisse in Ihrem Spiel erstellen, die Sie verwenden können, um ein interessantes und herausforderndes Gameplay zu erstellen.

Verbessern Sie die Spielsteuerung mit der Zeit

Mit Hilfe der Zeitsteuerung können Sie die Steuerung des Spiels verbessern. Sie können die Zeit nutzen, um Beschleunigungs-, Verzögerungs- und sogar Game-Over-Bedingungen zu implementieren. Viele Spiele führen das Konzept der Bullet Time ein, bei der die Action für kurze Zeit verlangsamt wird.

Mit den Zeitsteuerungsfunktionen in PyGame können Sie solche Funktionen – und mehr – ganz einfach in Ihre eigenen Spiele implementieren.