Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];

Вниз

Тормознутость при использовании 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.029 c
14-1089700051
menart
2004-07-13 10:27
2004.08.01
Тестирования секретарей


14-1089745881
\m/
2004-07-13 23:11
2004.08.01
Асма в делфи


3-1089169402
Jedu
2004-07-07 07:03
2004.08.01
DBGridEh - поля в записи?


9-1081017289
BAPBAP
2004-04-03 22:34
2004.08.01
Последняя версия GLScene?


8-1084356193
X-Disa
2004-05-12 14:03
2004.08.01
Заливка произвольной области





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский