Форум программистов, компьютерный форум, киберфорум
Наши страницы

GetFrameTime() выдает нормальное время кадра только со второго прохода по циклу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать независимую функцию, которая будет умножать две матрицы http://www.cyberforum.ru/cpp-beginners/thread1241166.html
Добрый день всем!:) Такой вопрос. Создала свой класс "двухмерной" матрицы. Хочу создать независимую функцию, которая будет умножать две приходящие матрицы. С указателем на указатели проблем не...
C++ Перегрузка операторов: Можно ли вынести "тело" оператора (расчеты) из H в CPP? Помогите новичку! Пишу класс и вынес его в отдельные файлы *.CPP и *.H Теперь пытаюсь переопределить операторы. Начал с = По примеру отсюда http://habrahabr.ru/post/132014/ class Integer {... http://www.cyberforum.ru/cpp-beginners/thread1241165.html
C++ Запуск программы с параметрами с командной строки
Добрый день. Хочу решить простую задачу. Пользователь должен запустить программу с параметрами с консоли. Параметров может быть 2 или 3. Либо две символьные строки (массива char), либо две строки и...
Временные файлы папки Temp - как избежать ее удаления C++
Подскажите пожалуйста! Есть программа, после ее обновления папка sql удаляется из временной папки TEMP... Что можно сделать, чтобы эта папка не удалялась вместе с файлами после обновления?
C++ Консоль не запускается из-за отсутствия DLL http://www.cyberforum.ru/cpp-beginners/thread1241136.html
Вот что выдал мне компьютер после попытки запустить мою консоль. Как это исправить? Почему консоль не запускается? Может быть, дело в том, что на этом компьютере не установлено Visual Studio, в...
C++ Переопределение размера массива указателей Доброе время суток. Столкнулся с неожиданно проблемой, не могу решить. Поиск по форуму ничего не дал. Есть элементарный код: #include <iostream> using namespace std; void main() { int... подробнее

Показать сообщение отдельно
TierX
20 / 20 / 0
Регистрация: 28.02.2014
Сообщений: 138

GetFrameTime() выдает нормальное время кадра только со второго прохода по циклу - C++

11.08.2014, 16:46. Просмотров 315. Ответов 3
Метки (Все метки)

C++
1
2
3
4
5
while(1)
{
frameTime = GetFrameTime(); // есть функция возвращает время 1 кадра.
func1(frametime); // в эту функцию отправляется время 1 кадра чтобы регулировать скорости  от фпс.
}
Беда в том что GetFrameTime() выдает нормальное время кадра только со второго прохода по циклу. Так как dt не имеет frameTimeOld:
C++
1
2
dt = currentTime.QuadPart-frameTimeOld; 
frameTimeOld = currentTime.QuadPart;
Сама же беда заключается в том, что когда вот это омг какое первое возвращаемое значение попадает в func1.
Значения типа (t+=1*frametime) прыгают в певом же кадре на нереально большое значение.
И вместо отсчета с (0я+1*frametime) мы получаем к примеру (3215+1*frametime). Что ясен пень не ок для нас.

2 вопроса:

1. Как это исправить в общем - в самих функциях времени?

2. Я исправил это вот так:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
/*добавил пару global*/ float counter(0),s(0);
 
while(1){
frameTime = GetFrameTime(); // есть функция возвращает время 1 кадра.
 
counter++; // ok костыль,
if(counter>1){s=frameTime;counter=2;}
 
func1(s);

Но хотелось бы избежать дополнительных проверок и действий.
Какие у вас есть более эффективные варианты?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.