Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.16;
Скачать: CL | DM;

Вниз

Таймер   Найти похожие ветки 

 
Дима   (2009-06-18 15:40) [0]

Как  правильно сделать таймер  на  API?
Я делаю  так

procedure glDraw();
///////////////////////////////////////////////////////////////////////

   TGT0:=timeGetTime- startTime0;
           delta0:= tgt0/10*1;
   if delta0 >1 then begin
     modeltimer[0]:=modeltimer[0]+1;
      delta0:=0;
   startTime0:=timeGetTime();
   end;

end;

Но в таком таймере переменная modeltimer[0]
увеличивается очень медленно, а мне нужно
быстрее.


 
Сергей М. ©   (2009-06-18 16:00) [1]

Какой период "тиканья" требуется получить ?


 
Дима   (2009-06-18 16:09) [2]

Ну мне неважно какой период.
Нужно только чтоб переменная modeltimer[0]
увеличивалась или уменьшалась на 1
быстрее.


 
Сергей М. ©   (2009-06-18 16:14) [3]


> мне неважно какой период


Очуметь)

Т.е., тебе, к примеру, фиолетово с какой скоростью крутится секундная стрелка твоих часов, отсчитывая "секунды" ?
Главное чтобы крутилась и желательно побыстрей ?)

Тогда с какого боку тут объявились функции мультимедиа-таймера ?


> Нужно только чтоб переменная modeltimer[0]
> увеличивалась или уменьшалась на 1
> быстрее.


Тогда убери всю эту лабуду, оставь только одну строчку

modeltimer[0]:=modeltimer[0]+1;

Быстрее уж некуда)


 
Дима   (2009-06-18 16:26) [4]

Тогда на другом компе, у которого процессор
лучше сложение будет очень быстрым и модель
будет вращаться как сумашедшая.


 
Сергей М. ©   (2009-06-18 16:53) [5]

Так я ж тебя и спрашиваю - какой конкретно период требуется обеспечить ?
От этого и решение зависит)..

Для классической киношной анимации, если о ней идет речь, достаточно 24 кадра в секунду, т.е. период = 1/24 сек

Тебя устраивает такая цифирь ?


 
Дима   (2009-06-18 17:05) [6]

Да.


 
Сергей М. ©   (2009-06-18 17:27) [7]

Тебе процедуру типа delay что ли нужно следать, которая задерживала выполнениа программы на 1/24 секунды ?


 
Б   (2009-06-18 17:36) [8]

> delta0:= tgt0/10*1;
Зачем домножаешь на единицу?
Хочешь быстрее - бери знаменатель помешьше... ;)


 
Дима   (2009-06-18 19:46) [9]

Я уменшал  delta и tgt но скорость тиканья не сильно уменьшается.
Похоже, что изменить скорость монжно, только
поменяв modeltimer[0]:=modeltimer[0]+1;  на

modeltimer[0]:=modeltimer[0]+5;


 
Сергей М. ©   (2009-06-18 20:52) [10]

Никаким "тиканьем" в твоей процедуре даже не пахнет, хоть миллион к modeltimer[0] прибавь.

На вопрос в [7] соизволишь ответить ?


 
Дима   (2009-06-18 22:09) [11]

Про задержку?
Зачем мне задерживать программу? у меня
простая игра на opengl.


 
Б   (2009-06-18 22:32) [12]

Вообще из твоего кода ничего не понятно. "Што... Пашто..."
Код в студию.


 
Дима   (2009-06-18 22:46) [13]

Я раньше думал, что ето таймер.
Теперь сам не знаю , что ето.


 
Б   (2009-06-18 23:15) [14]

Вылаживай код.
А то этот "кусок" ни о чём не говорит.


 
Дима   (2009-06-19 00:31) [15]

init
startTime0:=timeGetTime();
delta0:=0;
modeltimer[0]:=0;
...........................

procedure glDraw();

  TGT0:=timeGetTime- startTime0;
          delta0:= tgt0/10*1;
  if delta0 >1 then begin
    modeltimer[0]:=modeltimer[0]+1;
     delta0:=0;
  startTime0:=timeGetTime();
  end;

end;

весь код.  переменная modeltimer[0] увеличивается
через одинаковые промежутки времени со скоростью tgt0/10*1


 
Сергей М. ©   (2009-06-19 08:42) [16]

А где и как вызывается glDraw() ?


 
Дима   (2009-06-19 22:34) [17]

А функцию SetTimer(h_Wnd, 1, 1000, nil) как использовать?

Например, я нажимаю кнопку "вверх"  включается таймер
и нужно отсчитать 1(2,3,4) секунды.


 
Сергей М. ©   (2009-06-22 17:42) [18]

На вопрос [16] соизволишь ответить ?



Страницы: 1 вся ветка

Текущий архив: 2009.08.16;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.019 c
15-1245393982
alien1769
2009-06-19 10:46
2009.08.16
Ведение арматурных карточек


15-1245249210
Rouse_
2009-06-17 18:33
2009.08.16
Есть кто знающий хорошо РНР?


2-1245663388
OlegNik
2009-06-22 13:36
2009.08.16
Имя файла но короче.


2-1243568759
Rembo
2009-05-29 07:45
2009.08.16
Очистка памяти от массива экземпляров класса


15-1245353234
DesWind
2009-06-18 23:27
2009.08.16
Это реклама!!!