I am practicing on pygame and I was wondering how can we do so that the framerate does not affect the speed of execution of the game
<pygame.time.Clock.tick returns the number of milliseconds passed since the previous call. If you call it in the application loop, then this is the number of milliseconds passed since the last frame.
Multiply the velocity of the player by the passed time per frame, to get a constant movement independent on the FPS.
For instance define the distance in number of pixel, which the player should move per second (move_per_second
). Then compute the distance per frame in the application loop:
move_per_second = 500
FPS = 60
fun = True
clock = pygame.time.Clock()
while run:
ms_frame = clock .tick(FPS)
move_per_frame = move_per_second * ms_frame / 1000
# [...]