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

Вниз

Фоновая анимация   Найти похожие ветки 

 
Orc   (2003-09-13 18:09) [0]

Привет, Мастера!

Вопрос такой: не подскажите алгоритм (или исходник :)) такого действа: есть фоновая анимация, в виде внешнего файла. Как сделать так, чтобы эта анимация проигрывалась на фоне основного действия, т.е. не была от основного действия зависима? Юзаю Direct3D, в частности D3DXCreateSprite, т.е. гружу текстуры, а затем использую их как спрайты.


 
cyborg ©   (2003-09-13 19:54) [1]

По таймеру или ещё как нибудь, делай изменения параметров вывода фона, т.е. просто присваиваешь определённой переменной какой кадр данного анимируемого объекта. А в части отрисовки рисуешь смотря на эти переменные.


 
Orc   (2003-09-13 21:30) [2]

Дурацкий вопрос: а таймер как организовать? Например, можно как-нить написать процедурку, чтобы в свой result выдавала true каждые N милисекунд (в другое время выдавала false)? Я щас просто инкрементирую счётчик и каждый, например второй кадр, произвожу анимацию. А мне надо, чтобы это дело зависело от времени, а не от счётчика, который на разных машинах могет быть разный.


 
TButton ©   (2003-09-13 22:49) [3]

onIDLE
GetTicCount
while getTicCount-lastTic<timestamp do sleep(0)


 
Orc   (2003-09-14 00:05) [4]

Спасибо, помогло :)


 
pasha_676 ©   (2003-09-17 10:23) [5]


> onIDLE
> GetTicCount
> while getTicCount-lastTic<timestamp do sleep(0)

Какой странный и вообщем-то порочный путь. Может все же воспользоваться тайером? Если не виндовым на АПИ (что в данном случае пожалуй предпочтительней), то хотя бы TTimer.


 
Asteroid ©   (2003-09-18 15:16) [6]

> pasha_676 ©   (17.09.03 10:23) [5]

Почему же порочный? Имхо, таймер через сообщения здесь неприемлим.


 
pasha_676 ©   (2003-09-18 15:46) [7]


> Почему же порочный? Имхо, таймер через сообщения здесь неприемлим.


таймеры везде приемлимы ;) Особенно в функции типа процедурку, чтобы в свой result выдавала true каждые N милисекунд (в другое время выдавала false

Делать ее через While и sleep не очень то хорошо, имхо.

Другое дело что TTimer на 1 ms это конечно плохо. Но условие задачи -
> фоновая анимация, в виде внешнего файла. Как сделать так,
> чтобы эта анимация проигрывалась на фоне основного действия,
> т.е. не была от основного действия зависима?

Т.е. ориентировочно один кадр должен меняться в 40 мс или даже реже. А это уже таймер. А никак не в идле вайлы ставить.



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
14-1078999856
one-off-job
2004-03-11 13:10
2004.04.04
Требуется программист/программисты для удаленной работы.


3-1078464326
Masha Streltsova
2004-03-05 08:25
2004.04.04
Как вставить combobox в dbgrid?


11-1058172089
IronWit
2003-07-14 12:41
2004.04.04
установить цвет отличный от общего в одной строке listview


1-1079600030
Timego
2004-03-18 11:53
2004.04.04
Межпроцессное взаимодействие средствами COM+


3-1077856645
ProgC
2004-02-27 07:37
2004.04.04
Как найти редактируемую запись после Commit а