Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.5 MB
Время: 0.024 c
1-1090379603
Dub
2004-07-21 07:13
2004.08.01
слияние двух переменных типа string


3-1089034813
Lizard
2004-07-05 17:40
2004.08.01
MySQL & Delphi7


4-1087935997
Lion
2004-06-23 00:26
2004.08.01
rundll32 keyboard,disable


4-1087542808
ilnarab
2004-06-18 11:13
2004.08.01
Параметры FindFirstFile


3-1089030764
R.O.O.T
2004-07-05 16:32
2004.08.01
Проблемы при работе с DAO