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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
ВДВ777
-4 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 110
#1

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

26.04.2013, 11:57. Просмотров 1692. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2013, 11:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подсчет ФПС и вывод на экран (C++):

Подсчет и вывод гласных букв кирилицы - C++
# include <iostream> # include <conio.h> # include <string.h> # include <stdio.h> using namespace std; int main () ...

Подсчет количества каждого слова в строке и вывод по порядку - C++
Всем привет! Задание заключается в том, чтоб разделить строку на слова, посчитать количество каждого слова в строке и вывести в порядке...

Работа с объектами класса: вывод на консоль, подсчет суммы - C++
Здравствуйте, уважаемые программисты. Возникла проблема: 1) Не получается вывести на экран массив структур; 2) Как с помощью цикла...

Предусмотреть подсчет общего количества перестановок и вывод промежуточного массива после каждого цикла сортировки - C++
Нужно предусмотреть подсчет общего количества перестановок и вывод промежуточного массива после каждого цикла сортировки (чтобы отследить...

Вывод на экран чётных слов строки исправить на вывод нечётных слов - C++
#include<conio.h> #include<iostream.h> #include<string.h> #include<stdio.h> int i,l,j,k,p,n; char txt; char a,b; main() { ...

Вывод на экран - C++
После второго отсортированного массива на экран ничего не выводит Хотя в файл всё записывает Как исправить ?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
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
ВДВ777
-4 / 0 / 0
Регистрация: 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
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
26.04.2013, 12:44 #4
Похоже я начинаю догадываться... Тебе надо подсчитать FPS в какой игре? В своей?
1
ВДВ777
-4 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 110
26.04.2013, 12:54  [ТС] #5
Цитата Сообщение от lazybiz Посмотреть сообщение
Похоже я начинаю догадываться... Тебе надо подсчитать FPS в какой игре? В своей?
нет в чужой и вывести показатель ФПС в моём ДиректХ приложении
0
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
26.04.2013, 12:57 #6
Это очень сложно. Ты зря этим занялся.
1
ВДВ777
-4 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 110
26.04.2013, 13:03  [ТС] #7
Цитата Сообщение от lazybiz Посмотреть сообщение
Это очень сложно. Ты зря этим занялся.
Мне сказали на другом сайте, что не очень сложно , думай сам исходники не дадим и т.д.
А что нужно для подсчета ФПС?
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
26.04.2013, 13:06 #8
Цитата Сообщение от ВДВ777 Посмотреть сообщение
А что нужно для подсчета ФПС?
Знать сколько кадров было обработано за секунду.
1
ВДВ777
-4 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 110
26.04.2013, 13:10  [ТС] #9
Цитата Сообщение от Tulosba Посмотреть сообщение
Знать сколько кадров было обработано за секунду.
В этом то и вся суть....как это рассчитать на с++?

- хендл окна игры есть
- чтение памяти игры есть
- короче полный доступ к игре есть
- а подсчитать кадры.....беда какая-то получается......
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
26.04.2013, 13:56 #10
Цитата Сообщение от ВДВ777 Посмотреть сообщение
короче полный доступ к игре есть
Не очень понимаю, что Вы имеете в виду под полным доступом. Исходный код игры есть? Как Вы можете определить что был обработан очередной кадр?
0
ВДВ777
-4 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 110
26.04.2013, 17:55  [ТС] #11
Цитата Сообщение от Tulosba Посмотреть сообщение
Не очень понимаю, что Вы имеете в виду под полным доступом. Исходный код игры есть? Как Вы можете определить что был обработан очередной кадр?
исходного кода игры нет, я думал это делается через процессор или видео карту ....
полный доступ - чтение и запись памяти игры.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2013, 17:55
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.04.2013, 17:55
Ответ Создать тему
Опции темы

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