Текущий архив: 2004.08.01;
Скачать: CL | DM;
ВнизТормознутость при использовании DelphiX Найти похожие ветки
← →
HPR © (2004-04-09 22:16) [0]Многие жалуются, что игра, сделанная мной, очень затормаживает комп (загружает процессор). Я использую DelphiX. И таймер егошний. Он же OnIdle вроде юзает, тогда почему загруженность такая? Как Вы решаете эту проблему?
← →
miek © (2004-04-09 22:27) [1]OnIdle там криво реализовано. А Мы решаем проблему, используя системный мультимедийный таймер. Некоторые просто отрисовывают в параллельном потоке - это сложнее, но гибче.
← →
smb (2004-04-09 22:41) [2]вообще лучшее решение этой проблемы - DirectX, not DelphiX. для 2д графики - поверь, это НЕ трудно, по-крайней мере там нет ничего очень трудного. а потом отказ от VCL, перевод на C++, 3d... ;)
>параллельном потоке - это сложнее, но гибче
когда-то, я еще только начал на Delphi писать, я попытался реализовать потоки. получилось как-то не очень быстро, и при этом наблюдались реальные скачки фпс. может я тогда криво сделал.
2 HPR
хочешь, я выложу мануал по DX, по которому учился. около 1.2 мб. от начала и до полного безВЦЛья. подробный разбор, примеры. есть один минус - там имена файлов такие, что хрен найдешь, от какой статьи какой пример.
← →
HPR © (2004-04-09 23:13) [3]smb, выкладывай! Может разберусь
miek, а поподробнее про системный мультимедий таймер можно? Код там..
← →
HPR © (2004-04-09 23:16) [4]вот, кстати, эта игрушка:
ftp://ftp.ware.ru/win/5012Aqua_battle.exe
вобщем-то ничего особенного, т.к. это моя первая игра :)
← →
miek © (2004-04-10 08:48) [5]2HBR: Код очень простой.
uses mmsyster;
...
mmtimerevent:= timesetevent( mmtimerinterval, mmtimerresolution, timefunc, 0, time_periodic);
Где-то должна быть функция timefunc, которая станет вызываться через период mmtimerinterval.
Подробнее в MSDN или хелпе по WinAPI.
← →
smb (2004-04-10 22:11) [6]http://smb.hotmail.ru/mir/dx.exe
качай тут. запакован 7zip"ом - SFX. весит около 0.871 мб. если даже не очень хотеть будешь, то разберешься ;), уж хорошо все объясняется. игру скачал, щас смотрю.
← →
TButton © (2004-04-11 04:14) [7]я тоже жалуюсь. наверное притормаживает из-за объема выводимой графики.
← →
HPR © (2004-04-11 11:48) [8]Притормаживает сама игра или остальные проги во время игры?
← →
Мараканец © (2004-04-12 21:31) [9]что-то ваее детище не запускается... я даже ума не приложу почему
← →
HPR © (2004-04-13 21:53) [10]А что говорит? Или молча не запускается?
← →
Мараканец © (2004-04-14 13:07) [11]ваще ничего, просто не запускается!
← →
V@LER@N © (2004-04-14 14:02) [12]Может, потому что ты два ДХТаймера засандалил? Я тоже над этим долго думал...
← →
HPR © (2004-04-15 13:48) [13]Да нет, один у меня DXTimer. Просто наверное тормоза из-за фоновой картинки. Из-за нее ФПС круто упал. Кстати, а никто не задумывался над такой штукой - а что если регулировать частоту обновления каждого спрайта? Ведь частое обновление нужно только для быстродвижущихся объектов, а для статичных и вовсе раз 15-20 в секунду хватит.
← →
smb (2004-04-15 16:03) [14]>а что если регулировать частоту обновления каждого спрайта?
имеется ввиду "рисования"? если да, то получится
1) что нарисуется несколько раз объект поверх фона, и будет шлейф.
2)нарисуется фон, все объекты, очистка, на черном экране нарисуются объекты - короче фон будет мелькать "раз 15-20 в секунду"
есть вариант, только рисовать rect фона, на котором были объекты. но думаю, что если делать на чистом DX, а не на DelphiX, то рисование фона на фпс не так сильно скажется, зато вычисления будут лишними.
Страницы: 1 вся ветка
Текущий архив: 2004.08.01;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.032 c