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

Вниз

Timer с DirecxX   Найти похожие ветки 

 
Orc   (2003-08-27 09:25) [0]

Приветствую Мастеров!

Немного ламерский вопрос. Недавно начал постигать DirectX. Смысл такой: делаю меню к игре, DirectDraw не используется по определению (юзаю Direct3D). На задний план выводится фоновая картинка, отслеживается положение мыши и отрисовывается большой графический курсор (как текстура, причём делается это в одной процедуре). Требуется так затормозить вывод меню (меню должно плаааавно выезжать из-за края экрана), чтобы не тормозила отрисовка курсора. Т.е. в теории, наверное, это должно выглядеть так: ставим таймер на 0.5 секунды, если таймер не сработал отрисовываем курсор, если сработал то отрисовываем и курсор и меню + к этому инкрементируем координату для следующего вывода. Одна проблема - не может до меня дойти, как это реализовать на Делфи. Помогите, плиз! Вопрос жизни и смерти! Заранее благодарен за ответы.


 
cyborg ©   (2003-08-27 11:07) [1]

А как стыкуется неиспользование директдрау по определению и таймер?

Таймеры тут вообще не нужны, пункту меню наращиваешь координаты сверху вниз каждый игровой кадр, или каждые 2 кадра, или каждые три кадра, или каждые 4 кадра... продолжать? :)


 
Orc   (2003-08-27 12:35) [2]

2 cyborg:

Тогда встречный вопрос: а на разных по производительности машинах это дело с разной скоростью работать будет? И ещё: как считать игровые кадры?


 
TGrigory ©   (2003-08-27 13:10) [3]

>Тогда встречный вопрос: а на разных по производительности
>машинах это дело с разной скоростью работать будет? И ещё: как
>считать игровые кадры?
Введи переменную и каждый раз увеличивай ее. Примерно так

procedure Timer;
begin
inc(cadr);
//...
//это действия, которые выполняются в каждом кадре
if (cadr mod 2=0) then //действия в четных кадрах
if (cadr mod 3=0) then //действия каждый 3 кадр
//и тд.
end;


 
NailMan ©   (2003-08-27 13:46) [4]

Создай виндовый таймер CreateTimer/KillTimer(последняя функция для поиска если с названием первой я ошибся) на срабатывание скажем каждые 40 мс. В процедуре обработчика прибавляй координату к менюшке. Рендер менюшки и курсора должен быть каждый кадр, тоесть крутиться в цикле.
Собсно усе.


 
Orc   (2003-08-28 07:21) [5]

Большое спасибо всем!



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

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

Наверх




Память: 0.47 MB
Время: 0.041 c
7-43927
Mihin
2003-12-25 08:29
2004.03.14
Печать в текстовом режиме


1-43625
Plt
2004-03-02 11:59
2004.03.14
Проблема с ComboBox.ItemIndex


1-43554
TUser
2004-02-27 15:17
2004.03.14
FindWordPad


7-43932
Kerk
2003-12-18 11:44
2004.03.14
PhysicalMemory


1-43647
RDen
2004-03-02 09:16
2004.03.14
Почему не видна созданная TLabel?