Форум: "Игры";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
ВнизКак сделать экран загрузки в PowerDraw? Найти похожие ветки
← →
Гамомака (2004-12-24 05:39) [0]Нужно, чтобы при загрузке файлов игры появлялся экран с анимированной заставкой... Все работает, но...
Пользую стандартный таймер из комплекта - PowerTimer - весь код обработки и расчетов сунул в его процедуру RealTime. И вот какая беда: во время загрузки таймер не работает, и поэтому я не могу поменять кадр картинки. Пробовал пихать в процедуру загрузки код типа Application.ProcessMessages и Application.OnIdle(...), но не помогает. А если вызывать PowerTimer.RealTime(...), то нужно передавать значение Delta - а его таймер должен расчитывать сам, иначе будут неправильные расчеты...
Спрашивается, как "разморозить" таймер по время распаковки файлов игры? Использование потоков и замену таймера не предлагать!
← →
П7 (2004-12-24 09:43) [1]Это тебе не сюда, а в компоненты нужно постить.
← →
Гамомака (2004-12-26 03:19) [2]Почему-же? Вопрос игровой!
← →
MeF Dei Corvi © (2004-12-26 04:07) [3]Но используются компоненты.
А зачем вообще юзать таймер?
P.S. Анимированная заставка во время загрузки??? По-моему - не реально, т.к. во время загрузки комп должен быть занят загрузкой, а не выводом анимации.
← →
П7 (2004-12-26 05:19) [4]
> MeF Dei Corvi © (26.12.04 04:07) [3]
Во второй Халве, говорят, тоже сделали анимацию трёхмерную. Жутко тормозит на медленных компах... ):
> Гамомака (26.12.04 03:19) [2]
Я, лично, не вижу у тебя игрового вопроса. Ты хочешь "разморозить" таймер. А это компонент и ничего более. Просишь не предлагать замену таймера, что само по себе - идиотизм. Если ты просто не хочешь развиваться, учиться чему-то новому, то о каких играх может речь идти? Извини, если обидел, но я так считаю.
← →
Поручик © (2004-12-26 16:36) [5]О чем базар? откажись от ПоверДро.
Картинка должна рундериться постоянно! На любой тик процессора, который ничем не занят должна рендерится сцена, а какая сцена - это уже твое дело, хочещь игровая, хочешь прогрессбар анимированный.
Особо не пользовался Power"ом, но думаю что таймер надо запускать сразу, как только создается окно. F там уж рулишь с помощью какой-нить переменной типа GameState = (Intro, Menu, Level).
← →
MeF Dei Corvi © (2004-12-27 10:40) [6]Не на PowerDraw пишется довольно легко. На PowerDraw - не знаю. Никогда им особенно не пользовался.
← →
Гамомака (2004-12-27 10:55) [7]Просил не предлагать другой таймер, потому что тот очень удобный и хороший... Ну да ладно, подскажите другой таймер, я его код посмотрю, и переделаю стандартный таймер! Только не надо на потоках, а то многое придется переделывать не только в таймере, но и игре :)
← →
MeF Dei Corvi © (2004-12-27 11:14) [8]
> Ну да ладно, подскажите другой таймер, я его код посмотрю,
> и переделаю стандартный таймер!
Да там в принципе таймер и не нужен.
При загрузке инфы просто время от времени делай прорисовку экрана.
← →
Гамомака (2004-12-27 11:40) [9]Нет, надо еще и просчитывать кадр анимации, а для этого нужно, чтобы таймер работал...
НО: Как я уже говорил, пробовал вставлять в функцию распаковки ресурсов кодApplication.OnIdle(nil, AppIdle)
, где переменная AppIdle нужна (в этом случае) просто так... И ничего не работало. И сегодня меня озарило: нужно вызыватьPowerTimer.AppIdle(nil, AppIdle)
, и все будет работать :))
Только просто так эту процедуру не вызвать, нужно в модуле таймера (PowerTiming.pas) переместить декларациюprocedure AppIdle(Sender: TObject; var Done: Boolean);
изPrivate
вPublic
, чтобы ее можно было вызывать "из вне". Вот так...
Так что вопрос можно считать решенным! Не пришлось ничего менять, всем спасибо за суету :)
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c