W Pygame, normalizowanie prędkości gry w różnych wartościach fps

Zabawiam się Pygame, robiąc kilka prostych gier, żeby się tego nauczyć. Trudno mi jednak wdrożyć fps tak, jak chcę.

Z tego, co rozumiem, fps jest zwykle ustawiany za pomocą:

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

A potem, w całym programie, upewniam się, że każda pętla / ramka jest napisana tak, aby zajęła 1/60 sekundy, więc mogę, na przykład, sprawić, że obiekty będą się poruszać z taką szybkością, jakiej chcę. Zwiększenie zaznaczenia do 120 fps spowoduje, że gra będzie działać zbyt szybko, a zmniejszenie jej spowoduje, że gra będzie działać zbyt wolno.

Nie jest to jednak sposób, w jaki znam fps działający w jakiejkolwiek innej grze. W większości gier fps może się różnić tak bardzo, jak chcesz (zwykle w zależności od tego, jak dobrze system uruchamia aplikację), ale gra zawsze będzie działać z tą samą prędkością (np. Przesunięcie 100 pikseli na ekranie zajmie 1 sekundę bez względu na ile klatek stało się w tej sekundzie).

Jedynym sposobem, w jaki mogę myśleć o tym, aby zadziałało tak, jak chcę, jest pobranie bieżącej liczby klatek na sekundę z każdej klatki i uwzględnienie tego w obliczeniach każdego ruchu lub zdarzenia opartego na czasie. Ale to wydaje się niepotrzebnie skomplikowane i zastanawiam się, czy całkowicie brakuje mi części funkcjonalności pygame, która to dla mnie wskazuje.

questionAnswers(4)

yourAnswerToTheQuestion