Normalisieren der Spielgeschwindigkeit in Pygame über verschiedene fps-Werte

Ich spiele mit Pygame herum und mache ein paar einfache Spiele, nur um es zu lernen. Es fällt mir jedoch schwer, FPS so zu implementieren, wie ich es möchte.

Soweit ich weiß, setzt sich fps im Allgemeinen wie folgt zusammen:

import pygame
...
clock = pygame.time.Clock()
while True:
    clock.tick(60)

Und dann stelle ich während des gesamten Programms sicher, dass jede Schleife / jedes Einzelbild so geschrieben wird, dass sie / es 1/60 Sekunde dauert, damit ich zum Beispiel Objekte mit der Geschwindigkeit bewegen kann, mit der ich sie auch haben möchte. Wenn Sie den Tick auf 120 fps erhöhen, läuft das Spiel zu schnell, wenn Sie den Tick verringern, läuft das Spiel zu langsam.

Auf diese Weise kenne ich mich jedoch mit FPS in keinem anderen Spiel aus. In den meisten Spielen kann die Geschwindigkeit beliebig variieren (in der Regel abhängig davon, wie gut das System die Anwendung ausführt), das Spiel wird jedoch immer mit derselben Geschwindigkeit ausgeführt (z. B. dauert das Bewegen von 100 Pixeln über den Bildschirm unabhängig von der Dauer 1 Sekunde Wie viele Frames sind in dieser Sekunde passiert?

Ich kann mir nur vorstellen, dass es so funktioniert, wie ich es möchte, indem ich die aktuellen Bilder pro Sekunde in jedem Bild aufnehme und dies in die Berechnungen jedes bewegungs- oder zeitbasierten Ereignisses einbeziehe. Aber das scheint unnötig kompliziert zu sein, und ich frage mich, ob mir ein Teil der Pygame-Funktionalität komplett fehlt, der das für mich herausfindet.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage