Вы зависите от частоты кадров, чем быстрее частота кадров, тем быстрее будет ваше движение.
Обычно мы рассчитываем время между 2 кадрами / цикл итерации, и мы назвали его «дельта-время»».Затем мы умножаем это время дельты на вектор движения.
Вот пример цикла:
clock = pygame.time.Clock()
while True:
# limit the framerate and get the delta time
dt = clock.tick(60)
# convert the delta to seconds (for easier calculation)
speed = 1 / float(dt)
# do all your stuff, calculate your heroes vector movement
# if heroes position is "px, py" and movement is "mx, my"
# then multiply with speed
px *= mx * speed
py *= my * speed
Затем движение следует частоте кадров: если ваш цикл быстрее, то дельтаниже, а затем движение будет медленнее за кадр => результат будет иметь одинаковую скорость независимо от частоты кадров.
Теперь вы независимы от частоты кадров.