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

Вниз

Images   Найти похожие ветки 

 
Askalot ©   (2010-06-06 19:04) [0]

Я делаю программу с использованием сотен (а то и тысяч =) ) компонентов image"s и понятно в ней присутствуют тормоза. Переделывать типа рисования canvas и др. не хочу т.к. сделал уже очень много.
Возможно ли как то уменьшить тормоза? Например выделять под каждую картинку определенное количество памяти или как то так.
И еще, я каждый раз загружаю картинку командой loadfromfile из папки с картинками. Как загрузить все эти картинки в память программы при начале работы и загружать их уже из памяти? Мне кажется это должно уменьшить тормоза.


 
turbouser ©   (2010-06-06 19:14) [1]


> Askalot ©   (06.06.10 19:04)  


> Возможно ли как то уменьшить тормоза?

Не использовать
> сотен (а то и тысяч =) ) компонентов image"s

Достаточно ил imglist или свой массив из TBitmap
Что за задача такая?


 
Askalot ©   (2010-06-06 19:22) [2]

Да балуюсь помаленьку. Сажаю деревья, траву и т.д. Они растут, размножаются, умирают и заполоняют собой всю карту создавая жуткие тормоза =)


 
Askalot ©   (2010-06-06 19:24) [3]

И еще. Вроде бы ImageList не может вставлять прозрачные картинки, а я везде использую картинки в формате gif. Я пробовал создавать массив с картинками но у меня возникли какие то проблемы (уже не помню какие, что то с прозрачностью) и я отказался от этой идеи.


 
KilkennyCat ©   (2010-06-06 20:31) [4]

отображать должно только то, что можно увидеть. остальное - математика.


 
Askalot ©   (2010-06-06 20:58) [5]

Вот как это выглядит, если кому интересно: http://xmages.net/upload/bb2b3524.jpg


 
Anatoly Podgoretsky ©   (2010-06-06 21:22) [6]

> Askalot  (06.06.2010 19:22:02)  [2]

Похоже, что ты не только сажаешь траву.


 
sniknik ©   (2010-06-06 21:45) [7]

о каких сотнях (а то и тысячах) речь? там же все однотипное, я насчитал десятки (2), не больше.

> Например выделять под каждую картинку определенное количество памяти или как то так.
список по одной картинке одного вида, а в объектах только ссылки на них.


 
Askalot ©   (2010-06-06 22:07) [8]

sniknik, там под каждое дерево, под каждую картинку по одному компоненту image. На этой картинке их больше сотни. Примерно четверть той карты залить одной только водой - это уже тысяча картинок. Вот такой я кривой прогер =)
Можно поподробней как сделать эти ссылки и списки? Если есть, дай ссылку где это прочитать можно.


 
antonn ©   (2010-06-06 22:17) [9]


> Askalot ©   (06.06.10 22:07) [8]

Создавай список хранящий битмапы (разумеется не повторяющиеся), создавай список "объектов" (хотя бы record) в которых будет храниться индекс на битмап в первом списке. При рисовании "сцены" бери битмап по индексу и рисуй его.


 
antonn ©   (2010-06-06 22:19) [10]

как пример могу это предложить http://desksoft.ru/index.php?downloads=attachments&id=256 (340кб)


 
Amoeba_   (2010-06-06 22:24) [11]


> там под каждое дерево, под каждую картинку по одному компоненту
> image

Вот и корень зла = использование TImage. Из-за

> Переделывать типа рисования canvas и др. не хочу

Вы есть Сам Себе Злобный Буратино.

Решение: сделать именно так, от чего Вы отказались. Рисовать загруженные в Bitmap"ы (можно их хранить в TObjectList) или в ImageList картинки в PaintBox на его Canvas в событии OnPaint.


 
Askalot ©   (2010-06-06 22:33) [12]

Спасибо за советы, попробую и так и так. Я проходил делфи всего год на курсах, поэтому нубский вопрос: у меня деревья постоянно растут, потом гниют и так по кругу, и при каждом изменении одного дерева нужно будет перерисовывать все деревья по всему PaintBox"у? ведь нельзя же стереть отдельное дерево и на его месте нарисовать подросшее?


 
antonn ©   (2010-06-06 22:38) [13]

Перерисовывай только то, что рядом.
Или всю сцену разом


 
Leonid Troyanovsky ©   (2010-06-06 22:43) [14]


> Anatoly Podgoretsky ©   (06.06.10 21:22) [6]

> Похоже, что ты не только сажаешь траву.

А чего добру пропадать.

--
Regards, LVT.


 
Омлет ©   (2010-06-07 11:35) [15]

> программу с использованием сотен (а то и тысяч =) ) компонентов image"s

Это рекорд, однозначно.



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

Форум: "Начинающим";
Текущий архив: 2010.08.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.002 c
15-1275936455
xayam
2010-06-07 22:47
2010.08.29
Игровой сервер 2


15-1276148872
oldman
2010-06-10 09:47
2010.08.29
Вот вы говорите "безработица"... Посмотрите, вакансий сколько!


15-1276069755
SD Software
2010-06-09 11:49
2010.08.29
Цифровая подпись файла


15-1276028976
Юрий
2010-06-09 00:29
2010.08.29
С днем рождения ! 9 июня 2010 среда


3-1243931561
Александр
2009-06-02 12:32
2010.08.29
Объединение таблиц





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский