|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.08.2009, 15:11 | #21 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Точным таймером можно задавать только счет, но не производить внутренние сложные процедуры. Виснет программа из за того, что обработка не успела выполниться за указанный промежуток времени. Я применил точный таймер на обработку кадка и повесил программу, поскольку код не уложился в 10 мс в один из моментов. Теперь представьте, что CPU будет не совсем свободен, процедура затянется, таймер как считал так и будет считать, не уложившись программа выдаст ошибку и повиснет, или просто тупо повиснет не сказав ни слова.
Пусть точный таймер выполняет обработку состояний объектов и считает такт, от которого отталкивается обработка сцены, ...а сама сцена выводится по обычному таймеру, не зависящему от точного, способному удлинить свой интервал, если внутренняя процедура не успела. В результате, состояние и положение объектов в игре будет у всех одинаковое, а вот отображение на слабых машинах будет прерывистое, но все объекты будут на тех же местах как и у всех, ...на быстрых машинах все будет плавно.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
28.08.2009, 16:04 | #22 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,691
|
Да, согласен, с эти VCl и таймером не первой точности, хотел как можно быстрее набросать.
Вот пример, точного таймера QueryPerformanceCounter и QueryPerformanceFrequency Его работу тестил на разных машинах, на шустрых точность до ~0,0001 миллисекунды, на более слабых ~2 миллисекунды, все это естественно с промежуточными расчетами/обработкой сообщений, в общем delta кадра Sleep(1) ~16 миллисекунд выполняется, как и следовало ожидать, тут до точности, как до Нептуна)) В общем прошу потестить Последний раз редактировалось Kostia; 28.08.2009 в 16:07. |
28.08.2009, 17:50 | #23 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Считаю Sleep не подходящим методом для установки "прерывания", иначе это никак не назовешь. Если не ошибаюсь, в это время идет просто пауза, не реагирует на управление форма допустим, так или нет?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
28.08.2009, 18:09 | #24 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,691
|
Хы, я VCL никогда в таких целях не использовал, все обычно происходит в WM_PAINT или где-то тут
Код:
Sleep(1) - это просто засыпание потока, ведь на процых выполняются линейные программы, а в винде можно создать кучу потоков, которые как бы выполняются параллельно, т.к. винда это контролирует, если поток ничем не занят, то винда его "усыпляет" и передает управление другому потоку, так винда распределяет процессорное время между всеми потоками и создается ощущение параллельности. Sleep как раз усыпляет поток и винда не дает ему процессорного времени, пока не истечет время сна. Поэтому окно и зависает, но нагрузки при этом на процессор нет.(я не помню где читал, так бы дал ссылку) Последний раз редактировалось Kostia; 28.08.2009 в 18:14. |
06.09.2009, 17:27 | #25 | |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
ну, например, поэтому:
Цитата:
Системная процедура инициализации: Код:
Код:
Код:
Код:
Последний раз редактировалось Вадим Буренков; 06.09.2009 в 17:30. |
|
07.09.2009, 17:15 | #27 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Низнаю. По всем вопросам смотри файл справки в комплекте с двигом.
|
07.09.2009, 21:49 | #29 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Зачем ставить 1, поставь 10. Все будет работать нормально. При таких высоких скоростях процессор нагружается на максимум, ничего хорошего от этого не будет.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как улучшить fps ? | minatavr84 | Компьютерное железо | 2 | 26.03.2009 23:59 |
Как можно замерить и отобразить количество fps | CraZZy RabbIt | Общие вопросы Delphi | 0 | 12.03.2009 21:05 |
FPS Creator | SaiLight | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 12.01.2009 09:57 |
Почему кп показывает низкий fps??? | Samec_92 | Компьютерное железо | 11 | 18.12.2008 20:38 |
Можно ли подсчитать FPS в другом процессе? | Minimus | Win Api | 7 | 26.08.2008 02:08 |