Форум: "Начинающим";
Текущий архив: 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