Пятница, 16.11.2018, 08:57Главная | Регистрация | Вход

Меню сайта

Форма входа

Приветствую Вас Странник!

Друзья сайта

Наш опрос

Какие жанры игр вы предпочитаете?
Всего ответов: 77

Статистика

Подсчет FPS в играх - ФорумПодсчет FPS в играх - Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Последние обновления форума

  • Какой антивирус лучше? (1)
  • Орда (5)
  • Орда 2 (3)
  • Canvas Studio =)) (0)
  • aimp (0)
  • Вариант запустить старые игры на Windows XP (37)
  • Кто что слушает? (0)
  • ЧИТКА (4)
  • Fire Wheels (4)
  • RusFaq (0)
    • Страница 1 из 1
    • 1
    Форум » Программирование игр » Delphi » Подсчет FPS в играх
    Подсчет FPS в играх
    KostiaДата: Понедельник, 10.03.2008, 13:54 | Сообщение # 1
    Киллер
    Группа: Проверенные
    Сообщений: 39
    Репутация: 1
    Статус: Offline
    Если вы используете обыкновенный таймер для своей игры, то тут ничего сложного нет, заведите переменную FPS целого типа и поставьте второй таймер с интервалом 1000, обнулите FPS скажем при событии OnCraete и в таймере с игрой в самом конце прибавляйте ей по единички, а во втором таймере выведите значение например в заголовок формы и обнулите FPS. Это все что необходимо сделать если у вас игра происходит по таймеру!

    Модуль Forms прибавляет к вашей программе около 300 кб., ого какой размер, есть вариант самим создать форму используя функции WinAPI и делать игру в цикле, тогда она будет идти с той скоростью какую сможет позволить система и подсчет FPS немного сложнее и ниже речь пойдет о еще одном способе подсчета FPS.

    Заведите 4 переменные целого типа я их обозвал так:
    var
    t1,t2,fps1,fps2: integer;

    t1 и t2 этими переменными мы организуем некий самодельный таймер.
    fps1 и fps2 первый будет считать, а второй будем выводить на экран.

    Обнулите переменные FPS1 и FPS2, после того как вы создали форму но еще ее не показали переменным t1 и t2 присвойте значение функции GetTickCount(получить время в миллисекундах от начала старта Windows). В конце цикла где происходит ваша игра встевьте этот код:

    Code
    Setwindowtext(pWnd,pchar(inttostr(FPS2)));
    t1:=GetTickCount;
    if t1-t2>=1000 then
    begin
         fps2:=fps1;
         fps1:=0;
         t2:=GetTickCount;
    end;    
    fps1:=fps1+1;

    Кол-во кадров в секунду будут выводиться в заголовок созданной вами формы. Если вы еще не имеет представления как создавать свою форму прочтите эту тему.

    Добавлено (10.03.2008, 13:54)
    ---------------------------------------------
    Вот формула для расчета FPS за любой промежуток времени

    Code
    Setwindowtext(pWnd,pchar(inttostr(FPS2)));
    t1:=GetTickCount;
    if t1-t2>=750 then
    begin
          fps2:=fps1/(t1-t2)*1000;
          fps1:=0;
          t2:=GetTickCount;
    end;     
    fps1:=fps1+1;


    Сообщение отредактировал Kostia - Понедельник, 10.03.2008, 13:56
     
    Форум » Программирование игр » Delphi » Подсчет FPS в играх
    • Страница 1 из 1
    • 1
    Поиск:

    Copyright MyCorp © 2018 | Хостинг от uCoz