Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

FPS [Delphi, Windows]


Карлсон ©   (2002-12-12 23:52:00) 

Пишу игру на DelphiX.
при появлении на экране большого количества объектов, FPS естественно снижается.
насколько я понял, нужно ставить ограничение, что если в данный момент ФПС ниже допустимого уровня, то интервал таймера уменьшить, если больше, то увеличить.
я прав или нет?


Карлсон   (2002-12-14 00:06:00) [1]

ну у меня последний релиз от Хори.
сейчас установил андельфи на пятую дельфю, попытаюсь переписать код под нее.
мож че путевое получится? :)


Sapersky_   (2002-12-13 23:04:00) [2]

2Denton:
Смотрим, сколько времени затратили на вывод кадра (функция WinAPI QueryPerformanceCounter). Домножаем вектор скорости на коэффициент, пропорциональный этому времени.
Можно во избежание резких скачков усреднять коэффициент по нескольким кадрам.


Denton   (2002-12-13 20:29:00) [3]

Да, для 3D. у меня скорость перемещения объекта напрямую зависит от скорости смены кадров. Вопрос, как сделать их независимыми???


Mirovodin   (2002-12-13 19:02:00) [4]

Устанавливать предел FPS. т.е. не поднимать его выше определенного значения, тогда на любой машине получится одинаково или медленнее.
2 Denton © Я не понимаю, зачем тебе обновлять экран когда там НИЧЕГО не меняется ??? Это для 3D грфики нужно, там свет/тень и т.д.


Denton   (2002-12-13 14:06:00) [5]

Вопрос, как сделать чтобы перемишение объектов (или анимация) не зависила от скорости (FPS)?


Mirovodin   (2002-12-13 13:24:00) [6]

2 Карлсон © Альтернатива. Нужно точно установить из за чего тормозит. Например в одной из версий DelphiX спрайты которые были не видимы все равно обрабатывались при проверке столкновений. Потом этот баг убрали, но я не уверен что других не осталось. По этому нужно точно установить что дольше всего работает. И потом попытаться оптимизировать. Скорее всего придется править код именно DelphiX.


Карлсон   (2002-12-13 13:10:00) [7]

а какая тогда альтернатива иксу?
писать на DirectX API ?
книга у меня есть, но хочется чего-то попроще.
может быть GLScene ?
но с OpenGL я вообще никогда не работал.
как быть?


Mirovodin   (2002-12-13 13:05:00) [8]

2 Карлсон ©

Как, как - очень просто! Не умелое использование ресурсов в самом коде компонентов DelphiX, сожрет любой объем оперативной памяти. Там очень плохая работа с поверхностями, по этому когда много объектов начинаются тормоза. Хотя может это у тебя код плохо написан.


Карлсон   (2002-12-13 10:57:00) [9]

2 Mirovodin © (13.12.02 02:12)
дак это получается, что мой второй пенек не вытягивает ~200 объектов?
просто если объектов ~50, то фпс снижается на две-три единицы, а вот когда больше, то все тормозит.

2 Bones © (13.12.02 05:26)
туториалов дофига в нете.
поищите.


Bones   (2002-12-13 05:26:00) [10]

Удалено модератором


Mirovodin   (2002-12-13 02:12:00) [11]

А зачем, ты поставь у TDXTimer значение в 1000/30-40 и у тебя будет FPS ~33. А если машина не вытягивает, он будет снижаться. Если машина мощная останется на заданном уровне.


Ev_genus   (2002-12-13 00:24:00) [12]

А зачем это нужно?


Наверх

Титульная страница Поиск, карта сайта Написать письмо