Я использую SDL в своем игровом проекте, и я немного беспокоюсь о производительности своего ПК - она слишком высокая или я просто бродил.
Дело в том, что когда я меняю координаты некоторого спрайта, когда клавиша на клавиатуре нажата, например, на 2 px
, спрайт движется слишком быстро. И то же самое относится к скорости 1 px
.
Обычно (в SFML) я делаю следующие изменения скорости: 1.f / App->GetTimeSinceLastFrame()
, и это работает просто отлично! Но теперь я хочу использовать SDL. И я не могу выбрать задержки, потому что они не будут одинаковыми на разных ПК (и это наверняка очень уродливый способ) или преобразования с плавающей запятой по следующей причине.
Выполнение lastTicks = SDL_GetTicks()
с последующим использованием 1.f / (float) SDL_GetTicks() - lastTicks()
делает плохую работу - эта разница всегда ноль . Поэтому я либо ошибаюсь, либо время между двумя кадрами настолько мало, что оно округляется до 0
.
Может кто-нибудь дать мне совет, что мне делать?
ПРИМЕЧАНИЕ: изменить SDL на xxx не очень хороший совет;)