Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
-4 / 0 / 1
Регистрация: 12.03.2013
Сообщений: 110
1

Подсчет ФПС и вывод на экран

26.04.2013, 11:57. Просмотров 3615. Ответов 10
Метки нет (Все метки)

Задача состоит в том , чтобы подсчитать ФПС в игре, подсчитанное значение преобразовать в буфер и потом этот буфер вывести на экран , как вывести буфер на экран я знаю , а вот как подсчитать ФПС нет , как это сделать на с++.

Нашел код одного из форумчанина под ником "programina"

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DWORD FrameCnt;    // кол-во кадров
          float TimeElapsed; // промежуток времени
          float FPS;           // наш фпс
          float oldTime;
          float newTime;
          float deltatime;
 
          FrameCnt++; // c каждым кадром увеличивается на 1, т.е. это кол-во кадров кот. мы разделим на промежуток времени
          newTime = GetTickCount(); // записываем в ньютайм время после всех выполненных операциях
          deltatime = newTime - oldTime; // узнаем сколько времени проходит от начала до конца
          TimeElapsed += deltatime; // и прибавляем эту разницу к таймэлапседу
 
          if(TimeElapsed >= 500.0) // если в таймэлапседе накопилось 0.5 сек, то
          {
            FPS = 1000*(float)FrameCnt / TimeElapsed; // делим кол-во кадров прошедшее за полсекунды на таймэлапсед(равный примерно 0.5 сек)
            TimeElapsed = 0.0f; // обнуляем таймэлапсед, для следующего подсчета
            FrameCnt = 0; // и обнуляем кол-во кадров
          }

Но этот код компилируется , но не работает.

Помогите пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2013, 11:57
Ответы с готовыми решениями:

Моментальный подсчет и вывод на экран
Добрый день! Каким образом в JS реализуется моментальный подсчет, то есть я вбиваю в текстовое...

Выборка данных, подсчет и вывод на экран
добрый день, всем! Пишу функцию суть которой: 1. Выбирает из таблицы "сотрудники", номера всех...

Подсчет количества полей в таблице и вывод значения на экран( Access)
Добрый день! Вот пришлось написать маленький модуль для accessa, все не могу разобраться,как в...

Подсчет и вывод на экран суммы элементов массива с нечётными значениями
Составьте программу , которая заполняет массив a случайными целыми числами в диапозоне от1 до 10 и...

10
Эксперт С++
4958 / 3064 / 456
Регистрация: 10.11.2010
Сообщений: 11,152
Записей в блоге: 10
26.04.2013, 12:25 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
static DWORD total = 0;
static DWORD frames = 0;
DWORD start = GetTickCount();
 
... что-то рисуем
 
frames++;
total += GetTickCount() - start;
if ( total >= 1000 /* одна секунда */ ) {
    DWORD fps = frames * 1000 / total;
 
    ... выводим fps
 
    frames = 0;
    total = 0;
}
1
-4 / 0 / 1
Регистрация: 12.03.2013
Сообщений: 110
26.04.2013, 12:35  [ТС] 3
Цитата Сообщение от lazybiz Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
static DWORD total = 0;
static DWORD frames = 0;
DWORD start = GetTickCount();
 
... что-то рисуем
 
frames++;
total += GetTickCount() - start;
if ( total >= 1000 /* одна секунда */ ) {
    DWORD fps = frames * 1000 / total;
 
    ... выводим fps
 
    frames = 0;
    total = 0;
}
что подразумевается под что-то рисуем??? я так полагаю это процесс отрисовки кадров в игре в секунду?
0
Эксперт С++
4958 / 3064 / 456
Регистрация: 10.11.2010
Сообщений: 11,152
Записей в блоге: 10
26.04.2013, 12:44 4
Похоже я начинаю догадываться... Тебе надо подсчитать FPS в какой игре? В своей?
1
-4 / 0 / 1
Регистрация: 12.03.2013
Сообщений: 110
26.04.2013, 12:54  [ТС] 5
Цитата Сообщение от lazybiz Посмотреть сообщение
Похоже я начинаю догадываться... Тебе надо подсчитать FPS в какой игре? В своей?
нет в чужой и вывести показатель ФПС в моём ДиректХ приложении
0
Эксперт С++
4958 / 3064 / 456
Регистрация: 10.11.2010
Сообщений: 11,152
Записей в блоге: 10
26.04.2013, 12:57 6
Это очень сложно. Ты зря этим занялся.
1
-4 / 0 / 1
Регистрация: 12.03.2013
Сообщений: 110
26.04.2013, 13:03  [ТС] 7
Цитата Сообщение от lazybiz Посмотреть сообщение
Это очень сложно. Ты зря этим занялся.
Мне сказали на другом сайте, что не очень сложно , думай сам исходники не дадим и т.д.
А что нужно для подсчета ФПС?
0
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 13:06 8
Цитата Сообщение от ВДВ777 Посмотреть сообщение
А что нужно для подсчета ФПС?
Знать сколько кадров было обработано за секунду.
1
-4 / 0 / 1
Регистрация: 12.03.2013
Сообщений: 110
26.04.2013, 13:10  [ТС] 9
Цитата Сообщение от Tulosba Посмотреть сообщение
Знать сколько кадров было обработано за секунду.
В этом то и вся суть....как это рассчитать на с++?

- хендл окна игры есть
- чтение памяти игры есть
- короче полный доступ к игре есть
- а подсчитать кадры.....беда какая-то получается......
0
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 13:56 10
Цитата Сообщение от ВДВ777 Посмотреть сообщение
короче полный доступ к игре есть
Не очень понимаю, что Вы имеете в виду под полным доступом. Исходный код игры есть? Как Вы можете определить что был обработан очередной кадр?
0
-4 / 0 / 1
Регистрация: 12.03.2013
Сообщений: 110
26.04.2013, 17:55  [ТС] 11
Цитата Сообщение от Tulosba Посмотреть сообщение
Не очень понимаю, что Вы имеете в виду под полным доступом. Исходный код игры есть? Как Вы можете определить что был обработан очередной кадр?
исходного кода игры нет, я думал это делается через процессор или видео карту ....
полный доступ - чтение и запись памяти игры.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2013, 17:55

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Подсчёт количества букв "a" в файле и вывод на экран [tasm]
Вот что-то написал. Не запускается. .486 model small Data SEGMENT use16 ASSUME ds: Data mess1...

Проседает фпс, нестабильный фпс в csgo и других играх
Процессор: i3 6100 3.7 GHz Видеокарта: nvidia 1050 Материнская плата: H110M PRO-d ОЗУ 8 гб 1...

Не могу понять как делать вывод на экран структуры STUDENT на заполнение и вывод данных на экран
Добрый вечер. Вот задание и мой код программы на C++ Не выходит нормально реализовать 3е...

Во время игры стало проседать фпс с 60 на 15-20 фпс
иногда во время игры стало проседать фпс с 60 на 15-20 фпс, секунд на 5, затем снова 60... начал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.