Форум: "Игры";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
ВнизTimer в Builder. Найти похожие ветки
← →
VolanD666 (2004-11-13 13:01) [0]Здрасти, мастера! В DelphiX есть хороший Timer, который основан на событии формы OnIdle. Хотел такой же написать для Builder"а вот только кося где то:
Word MiliSeconds;
DecodeTime(Time()-OTime, NULL, NULL, NULL, MiliSeconds);
if (Start and MiliSeconds>=1/30){
OTime=Time();
/* Текст отрисовки */
Done=false;
}
OTime- глобальная.
← →
Megabyte-CeerCop © (2004-11-15 07:21) [1]Делай так. Это быстрый и единственно правильный для игры способ.
LARGE_INTEGER currentticks;
LARGE_INTEGER Ocurrentticks;
QueryPerformanceCounter (¤tticks); // получаем текущее время
if ((currentticks - Ocurrentticks) > 20) // 50 Hz (1000/20)
{
Ocurrentticks = currentticks;
/* Текст отрисовки */
}
//Пригодится
QueryPerformanceFrequency(&tickspersecond); // получаем частоту таймера для данной машины.
← →
Megabyte-CeerCop © (2004-11-15 07:23) [2]
> (¤tticks
Это похоже распознано как тэг читать так:
&_currentticks ( только без знака подчёркивания.)
← →
VolanD666 (2004-11-19 11:37) [3]Спасибо, попробую.
← →
VolanD666 (2004-11-19 15:29) [4]Сорри, но Builder ругается на:
> if ((currentticks - Ocurrentticks) > 20) // 50 Hz (1000/20)
(Говорит, что оператор "-" не определен для типа LARGE_INTEGER)
← →
VolanD666 (2004-11-21 15:34) [5]:)
← →
Megabyte-ceercop © (2004-11-22 07:56) [6]И от меня тоже сорри.
забыл, что при операциях с Ларге_интегером нужно писать так:currentticks.QuadPart - Ocurrentticks.QuadPart //QuadPart выделяет младшую часть и приводит к интегеру.
Помести это.
← →
bobomen_ (2004-11-22 08:16) [7]Удалено модератором
← →
bobomen_ (2004-11-22 14:19) [8]Удалено модератором
Примечание: Последнее предупреждение.
← →
VolanD666 (2004-11-25 17:46) [9]Thank you.
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c